Entwickler-Ecke

Windows API - Richtiges Handle bekommen


Swordooo - Mi 05.08.09 15:43
Titel: Richtiges Handle bekommen
Hallo an alle!
Ich habe folgendes Problem: Ich habe 2 gleiche Anwendungen, die bereits laufen, bevor ich mein Delphi-Programm starte. Diese beiden Anwendungen haben den gleichen *.exe Namen (Prozess-Name) und die gleiche Form-Caption!

Mein Delphi Programm soll nun eine 3. Anwendung starten, die genau den gleichen Namen (*.exe, Caption) hat wie die anderen beiden. Wie bekomme ich nun das richtige Handle von dem Programm, das gerade gestartet wurde? Sorry wenn ich mich etwas kompliziert ausgedrückt habe -.-.

Danke schonmal im Voraus!


Delete - Mi 05.08.09 15:54

Ein Ansatz: das Programm mit ShellExecuteEx oder CreateProcess starten, mit EnumWindows durch die Fenster iterieren und mit GetWindowThreadProcessId mit der ProcessId des gestarteten Programmes vergleichen.


uall@ogc - Mi 05.08.09 22:04

Kommt auf drauf an welches handle du willst. CreateProcess liefert das Processhandle/id Threadhandle/id zurück. Mit EnumThreadWindows solltest so auch an das Window handle kommen.