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 Wie schliesse ich vom Exenamen auf das Fensterhandle? (https://www.delphipraxis.net/3743-wie-schliesse-ich-vom-exenamen-auf-das-fensterhandle.html)

Dax 28. Mär 2003 06:24


Wie schliesse ich vom Exenamen auf das Fensterhandle?
 
Ich versuche, ein Programm zu bauen, mit dem man andere Programme in den Hintergrund bringen kann, aber die müssen dann mit meinen gestartet werden. Wie kann ich jetzt vom .exe-namen eines Programms auf sein Fensterhandle schliessen?

Luckie 28. Mär 2003 07:35

Vom Prozess auf das Fenster? Schwer, weil ein Prozess mehrere Fenster haben kann. Hm, vom Fenster auf den Prozess wüßte ich jetzt was. Kannst du das Fenster nicht mit FindWindow finden? Dann müssen sie auch nicht mit deinem gestartet werden.

Motzi 28. Mär 2003 08:07

Wie Luckie bereits gesagt hat kann ein Prozess mehrere Fenster haben, aber du kannst dir alle Fenster des Prozesses auflisten lassen:
mit EnumWindows alle Fenster auflisten lassen
mit GetWindowThreadProcessID die ProcessID für den Prozess des Fensters holen
mit OpenProcess ein ProcessHandle besorgen
mit GetModuleFileName den exe-Pfad des Prozesses holen und vergleichen

Chewie 28. Mär 2003 14:12

Oder umgekehrt:

- Mit CreateToolHelp32SnapShot und Process32First bzw. Process32Next das Prozesshandle ermitteln; mit Thread32First bzw. Thread32Next alle Threads dieses Prozess ermitteln
- Mit EnumThreadWindows alle Fenster aller Threads dieses Prozess ermitteln
- Mit EnumChildWindows die evtl. Child-Fenster jedes Fenster aller Threads durchgehen.


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