![]() |
Handle Finden
Hallo,
Ich verstehe nicht, wie man Handles finden kann und dann benutzt. Das Tutorial von Luckie habe ich schon gelesen, aber so richtig verstehen tut ich den Code nicht. Erstaml würde mich interessieren, wie man ein Handle überhaupt findet. Als Aufgabe habe ich mir gestellt, das Windows-Explorer Fenster zu finden:
Delphi-Quellcode:
So bekomme ich immer die Meldung "nicht gefunden". Auch...
procedure TForm1.Button1Click(Sender: TObject);
var window: hwnd; begin window:=findwindow('Explorer', nil); if window<>0 then begin showmessage('gefunden'); end else begin showmessage('nicht gefunden'); end; end;
Delphi-Quellcode:
geben keine andere Meldung heraus.
window:=findwindow('Windows-Explorer', nil); //...und...
window:=findwindow('Dokumente', nil); Wie finde ich denn ein bestimmtes Handle überhaupt???? :gruebel: |
Re: Handle Finden
Niemand ist gezwungen, den Klassennamen eines Fensters charakteristisch zu wählen. Setze für den ersten Parameter nil ein und gib im zweiten den Fenstertitel an, wenn du den Fensterklassennamen nicht kennst.
|
Re: Handle Finden
ahhh...schon viel besser :thumb:
hab jetzt so:
Delphi-Quellcode:
Und das geht immer, also es reicht der Fenstertitel, so wie er im Taskmannager und in der Taskleiste steht?
window:=findwindow(nil, 'Dokumente');
Edit: Aber wenn ich unter die showmessages jetzt folgendes schreibe, bekomme ich die Fehlermeldung, das eine anweisung erforderlich ist, und keine Integer Zahl.
Delphi-Quellcode:
Woran liegt das denn?
sendmessage(window, WM_Close, 0, 0);
|
Re: Handle Finden
Ja, aber unpraktisch wird es, wenn der Titel vom geöffneten Dokument abhängt. Da findet man lieber einmal den Klassennamen und hat dann keinen Ärger mehr.
|
Re: Handle Finden
An dem Sendmessage is nix falsch.
Poste ma die Zeilen darüber bzw darunter. |
Re: Handle Finden
Zitat:
Delphi-Quellcode:
die leerzeichen sind aber falsch, ich denke mal, weils dann keine integer zahl mehr ist. Richtig ist es so:
sendmessage(window,wm_close, 0, 0)
Delphi-Quellcode:
sendmessage(window,wm_close,0,0)
|
Re: Handle Finden
Du kannst auch 1000 Leerzeichen machen und es klappt :|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz