Einzelnen Beitrag anzeigen

tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#1

Prüfen, ob ein Fenster "echt" im Vordergrund ist

  Alt 7. Mai 2012, 12:52
Hallo,
von meinem Programm aus muss die Suchfunktion eines externen Programmes gesteuert werden. Ich gehe so vor:

1) Ich durchsuche zunächst die Fenstertitel, um zu prüfen, ob das externe Programm überhaupt geöffnet ist
2) Ist es geöffnet, hole ich es in der Vordergrund
Code:
SendMessage(iHandle, WM_SYSCOMMAND, SC_RESTORE, iHandle);
SetForegroundWindow(iHandle);
3) Danach kommen ein paar simulierte Tastendrückereien...F3, TAB, TAB, STRG-V, ENTER

Klappt alles wunderbar, wenn das Programm in den Vordergrund geholt werden kann.

Nun das Problem: in diesem Programm können Unterformulare geöffnet werden, die immer im Vordergrund bleiben, sobald das Programm aktiviert wird. In diesem Falle würden meine simulierten Tastenkombinationen zu unschönen Ergebnissen führen.

Also müsste ich irgendwie prüfen, ob wirklich das "Hauptfenster" des Programmes den Fokus hat, oder ein unerwünschtes Unterformular.
Geht das? Ich könnte natürlich eine Negativliste der unerwünschten Fenstertitel führen, aber das wäre doch sehr umständlich und aufwändig.

Grüße
Christof
  Mit Zitat antworten Zitat