![]() |
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:
Das Programm ist eigentlich nur im SystemTray und ich möchte trotzdem seine Werte auslesen ohne jedoch das Optionsfenster ständig offen zu lassen.
haWnd := FindWindow(nil,'Optionen');
GetWindowThreadProcessId(haWnd, &procid); |
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 |
Re: Handle oder ProcessId eines Programms finden!
Zitat:
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