Thema: Delphi Eigenes Handle finden

Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Eigenes Handle finden

  Alt 5. Okt 2009, 13:00
Zitat von Fridolin Walther:
Wenn Du via MSDN-Library durchsuchenGetWindow das Handle eines Deiner eigenen Fenster ermitteln möchtest, solltest Du das Fensterhandle ja haben (immerhin wurde es bei der Fenstererstellung ja zurückgeliefert und Du hast es hoffentlich gespeichert).
Ich kann damit nichts anfangen. Kannst Du das bitte genauer erläutern? Wenn ich mein Fensterhandle hätte, müsste ich das nicht mit GetWindow erst suchen.
Entschuldigung: Evtl. habe ich mich auch nicht vollständig/richtig ausgdrückt. Meine Anwendung hat kein(e) Fenster. Sie läuft einem Dienst ähnlich ohne Benutzerinteraktion im Hintergrund. Dabei ist es notwending, dass ich auf das Ende eines bestimmten Programms/Fensters warte (vgl. diesen Thread). Um das zu prüfen, wollte ich mit GetWindow alle Fenster so durchsuchen:
Delphi-Quellcode:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
  NextHandle: Hwnd;
  NextTitle: array[0..255] of char;
begin
  // Get the first window
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
  while NextHandle > 0 do
  begin
    // retrieve its text
    GetWindowText(NextHandle, NextTitle, 255);
    if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
    begin
      Result := NextHandle;
      Exit;
    end
    else
      // Get the next window
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
  end;
  Result := 0;
end;
Mit Einbindung der VCL klappt das wunderbar. Nur wie mache ich das ohne ein Fenster? Mit GetWindow(0, GW_HWNDFIRST); klappt es jedenfalls nicht.

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat