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 Handle oder ProcessId eines Programms finden! (https://www.delphipraxis.net/95068-handle-oder-processid-eines-programms-finden.html)

Hedge 30. Jun 2007 00:46


Handle oder ProcessId eines Programms finden!
 
Möchte ein paar Werte aus einem Programm auslesen, was auch so weit ganz gut klappt.

Aber...bisher habe ich immer das Optionsfenster offen gelassen um an ein Handle zu kommen, womit ich wiederrum die ProcessID ermitteln kann. Das sieht dann so aus:

Delphi-Quellcode:
haWnd := FindWindow(nil,'Optionen');
GetWindowThreadProcessId(haWnd, &procid);
Das Programm ist eigentlich nur im SystemTray und ich möchte trotzdem seine Werte auslesen ohne jedoch das Optionsfenster ständig offen zu lassen.

c113plpbr 30. Jun 2007 01:04

Re: Handle oder ProcessId eines Programms finden!
 
Du könntest versuchen alle Prozesse aufzulisten, und dann über den Dateinamen/Pfad des gewünschten Prozesses die ID herausfinden, dazu brauchst du vermutlich die Funktionen EnumProcesses um die Prozesse aufzulisten, EnumProcessModules um das erste geladene "Modul" des Prozesses (das erste Modul ist normalerweise das Image der exe-datei) herauszukriegen und noch GetModuleBaseName um den dazugehörigen Pfad und Dateinamen herauszufinden. (Aja, die Funktionen gibts erst ab Win NT, nicht unter win9x!)
Schau dich doch mal hier im Forum oder in der MSDN-Library nach den Funktionen um, ich denke, da findet sich bestimmt einiges ^^

UUh, und bevor ichs vergess: Herzlich willkommen in der DP! :dp:

mfg,
Philipp

Hedge 30. Jun 2007 12:24

Re: Handle oder ProcessId eines Programms finden!
 
Zitat:

Herzlich willkommen in der DP! The Delphi-PRAXiS Rules
Danke danke...das Forum ist echt aufwändig customized...da könnt ihr stolz drauf sein.

Glücklicherweise habe ich für mein Problem eine einfachere Lösung gefunden.
Eines der 3 Handles hat einen Title den ich wie vorher bei Optionen ganz einfach mit FindWindow zuweisen konnte.

Trotzdem danke für die Hilfe :)


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