Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi FindWindow mit Maske (https://www.delphipraxis.net/129841-findwindow-mit-maske.html)

Schwedenbitter 26. Feb 2009 15:50


FindWindow mit Maske
 
Hallo,

ich habe hier im Forum und auch anderswo bereits gesehen, dass man mittels FindWindow() und entsprechenden weiteren Befehlen z.B. Tastendrücke an Programmfenster senden kann. Auch ich möchte gern den FireFox fernsteuern. Ich habe dort Datenbankprogramme mit php laufen. Hin und wieder benötige ich Funktionen, welche ich dann mit externen Programmen machen muss.

Mein Ziel ist es jetzt, unmittelbar vor dem Beenden eines solchen Programm-Moduls das geöffnete Fenster des FireFox zu aktualisieren. Ich mache Änderungen im Dateisystem, die in entsprechende Listen geladen werden müssen. Mein Problem ist aber, dass der Fenstertitel variabel ist. Es wird dort die Vorgangsnummer angezeigt. Z.B. "Datenbank - 6000/08 - Mozilla Firefox" oder "Datenbank - 5500/08 - Mozilla Firefox". Wenn ich das entferne, werde ich von den Mitarbeitern gehauen.

So funktioniert es leider nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   Wnd:HWND;
begin
   Wnd:=FindWindow(nil,'* Mozilla Firefox');
   if Wnd <> 0 then
     begin
       SetForeGroundWindow(Wnd);
       keybd_event(VK_F5,0,0,0);
       keybd_event(VK_F5,0,KEYEVENTF_KEYUP,0);
     end;
end;
Gibt es eine (andere) Möglichkeit, mein Ziel zu erreichen?
Gruß, Alex

DeddyH 26. Feb 2009 15:54

Re: FindWindow mit Maske
 
Schau Dir mal WinSpy an, damit kannst Du Dir auch Code generieren lassen, um das Fenster zu finden.

DasZiesel 26. Feb 2009 16:46

Re: FindWindow mit Maske
 
Hallo,

eine Funktion FindWindow mit Unterstützung von Masken gibt es von Haus nicht. Entweder versucht du das Fenster über den Classnamen zu bekommen und prüfst es ob es sichtbar ist, oder du baust dir dein eigenes FindWindow das eben eine Maske unterstützt. Die Funktion EnumWindow und ein Besuch bei den Schweizer Kollegen dürfte hilfreich sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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