Autor Beitrag
Swordooo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Sa 12.09.09 17:02 
Hallo Delphi-Forum,
Ich habe jetzt schon länger das Problem, dass ich eine ausführbare Datei starten möchte und dann irgendwie das Handle zurückbekommen möchte (HWND). Habe schon seit längerer Zeit im Internet gesucht, jedoch bin ich, wenn ich mal was gefunden habe, nicht beim Code durchgestiegen. Wäre echt sehr nett, wenn ihr mir ein sehr kurzes Beispiel posten könntet, wie ich z.B. notepad.exe starte und dann das Handle (HWND) einer Variablen übergeben wird. Wäre sehr dankbar!

Mit freundlichen Grüßen
Swordooo
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.09.09 17:13 
Was willst du haben, das Handle des zugehörigen Fensters oder das Prozesshandle? Ersteres bekommst du mit FindWindow zweiteres bekommst du, wenn du den Prozess mit CreateProcess oder ShellexecuteEx startest.
Swordooo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Sa 12.09.09 17:26 
Ich möchte gerne das Handle haben, was man ja eigendlich, wie du schon sagtest, mit FindWindow bekommt, jedoch funktioniert das nicht mehr, wenn ich nun z.B. schon >1 Editor (notepad.exe) offen habe, weil dann ja das gleiche Caption und gleicher Prozessname besteht. Nun starte ich mit Delphi einen weiteren Editor, doch ich bekomme wahrscheinlich das falsche Handle :D
MfG
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 13.09.09 02:15 
Dann wirst du wohl irgendwie ein Unterscheidungsmerkmal finden müssen. So spontan fällt mir allerdings auch keins ein.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 03:18 
Bei CreateProcess bekommst du die Thread-ID frei Haus geliefert, damit kannst du danach einfach EnumThreadWindows aufrufen und alle Fenster des Threads durchgehen. Zumindest bei Notepad wird das vermutlich so gehen, ansonsten müsste man alle Fenster durchgehen und schauen welche zu dem entsprechenden Prozess gehören und den richtigen Titel haben.

So wird auch hier z.B. vorgegangen:
www.delphi-forum.de/....php?p=460553#460553