AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm ferngesteuert aktivieren

Ein Thema von Cobra · begonnen am 4. Okt 2004 · letzter Beitrag vom 5. Okt 2004
Antwort Antwort
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#1

Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 15:24
Hallo @all

Folgendes Problem: Habe ein Programm (nicht von mir) das den Bildschrim kompett ausfüllt und ich möchte zwischen meinem und dem anderen Programm hin und herwechseln.
Meine Idee ist ein Programm was die Funktionstasten sagen wir F7 und F8 überwacht und dann zwischen den beiden Programmen schaltet.
So weit so gut habe also die Tasten abgefangen und bekomme auch das Handle auf das Hauptfenster jetzt will ich das Fenster in den Vordergrund holen mit SetForgroundWindow das geht auch jedenfals bei Win NT bei Win 2000 nicht warum
Also bei Win 2000 wird mein Hauptfenster nach vorn gebracht aber verdeckt dann andere Modale Fenster. schei.....
Frage wie kann ich es so machen wie bei Windows ALT-Tab Programmwechsel denn das Programm was den Bildschirm verdeckt schaltet auch einige Funktionen von Windows ab auch ALT+Tab und den Taskmanager. Hat was mit Sicherheit zutun das Programm ist eine Maschinensteuerung und mein Programm macht die Auswertung für das Büro soll aber auch an der Maschine laufen. (Ich habe keinen Plan wie das Programm das macht ist aber so und ich will und darf das nicht ändern)

Hat jemand eine Idee
MFG
Cobra
  Mit Zitat antworten Zitat
gekmihesg
(Gast)

n/a Beiträge
 
#2

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 15:32
versuch mal BringWindowToTop() oder SetFucus()
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#3

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 16:10
Zitat von gekmihesg:
versuch mal BringWindowToTop() oder SetFucus()
Wie soll ich das nutzen es ist ein fremdes Programm von dem ich nur die Exe habe ???

Aber ich habe da noch was gefunden.
Mit GetWindow bekomme ich alle Fenster die das Hauptfenster als Owner haben und wenn ich das weiterdenke
komme ich an alle Fenster und kann die Owner Reihenfolge nutzen um die Fenster in der richtigen Reihenfolge anzuzeigen oder nicht.

Warte mal auf einspruch von jemanden hier und teste mal ob das funktioniert.
alles wird gut
MFG
Cobra
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 16:13
Hallo,

zwischen Programmen kannst du mit Alt + Tab wechseln.

mfg
freak

Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 16:15
Hi freak,

Zitat von freak4fun:
zwischen Programmen kannst du mit Alt + Tab wechseln.
er will aber eine programmtechnische Lösung

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
ipworks

Registriert seit: 27. Jul 2004
65 Beiträge
 
#6

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 16:19
Hallo.
Vielleicht hilft's:

Delphi-Quellcode:
function ForceForegroundWindow(hwnd: THandle): WordBool;
const
  SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
  ForegroundThreadID: DWORD;
  ThisThreadID: DWORD;
  timeout: DWORD;
begin
  if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE);

  if GetForegroundWindow = hwnd then Result := True
  else
  begin
    // Windows 98/2000 doesn't want to foreground a window when some other
    // window has keyboard focus

    if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4)) or
      ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
      ((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
      (Win32MinorVersion > 0)))) then
    begin
      // Code from Karl E. Peterson, [url]www.mvps.org/vb/sample.htm[/url]
      // Converted to Delphi by Ray Lischner
      // Published in The Delphi Magazine 55, page 16

      Result := False;
      ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
      ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
      if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
      begin
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hwnd);
        AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
        Result := (GetForegroundWindow = hwnd);
      end;
      if not Result then
      begin
        // Code by Daniel P. Stasinski
        SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
          SPIF_SENDCHANGE);
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hWnd);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
      end;
    end
    else
    begin
      BringWindowToTop(hwnd); // IE 5.5 related hack
      SetForegroundWindow(hwnd);
    end;

    Result := (GetForegroundWindow = hwnd);
  end;
end; { ForceForegroundWindow }
Enjoy
Peter
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#7

Re: Programm ferngesteuert aktivieren

  Alt 4. Okt 2004, 16:54
Zitat von freak4fun:

zwischen Programmen kannst du mit Alt + Tab wechseln.

siehe #1 das Programm oder die Rechnerkonfiguration lässt keine Windows-Tasten zu du kannst drücken auf die Wintaste bis der Finger blutet da kommt keine Taskleiste. Das Programm ist eine Maschinensteuerung und in WinCC (von Siemens) geschrieben wenn das jemanden was sagt. Da geht kein Takmanager und kein ALT+TAB das ist ja das Hauptproblem.

Aber was mich fröhlich stimmt ist das dieses Programm nur aus dem Hauptfenster besteht also irgendwie sind die anderen Fenster also z.B. Messages oder so keine Fenster sind irgendwie Panel oder so jedenfals in dem Teil bekomme ich alles richtig angezeigt immer.


@ all THX für die Hilfe werde alles testen aber erst morgen !!!

PS: Habe da einen einfachen Plan ich sende meinen Programm einfach eine selbstdefinierte Message dann mach ich das aktivieren im Progamm obwohl das mit dem GetWindow mir schonmal das erste (Hauptfenster) und das letzte z.B. eine Passwortabfrage richtig zurückgibt. (Aber alles erst Morgen @all bis morgen)
MFG
Cobra
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#8

Re: Programm ferngesteuert aktivieren

  Alt 5. Okt 2004, 08:21
Hallo zusammen (neuer Tag neues glück )

@ipworks THX
Der Code von dir sieht dem Code den ich auf dem Entwicker-Forum gefunden habe sehr ähnlich. Mein Code ist also auch fast das Gleiche ich sehe es mir jetzt mal genauer an.

Hat jemand noch eine Idee ?
MFG
Cobra
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#9

Re: Programm ferngesteuert aktivieren

  Alt 5. Okt 2004, 10:18
@ipworks
Dein Code läuft THX!

Habe wohl bei der ersten Version was falsch gemacht jetzt gehts super gut.
MFG
Cobra
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz