Entwickler-Ecke
Windows API - PID zu Prozess herausfinden
Shadow110 - Di 13.04.04 18:12
Titel: PID zu Prozess herausfinden
Hallo.
Gibt es eine Api, die mir die PID zu einem Prozess (z.B Notepad.exe) zurückgibt?
Wenn es geht nicht über die EnumProcesses Sache, wo man erst alle Prozesse einzeln durchgehen muss.
Sowas wie getWindowThreadProcessId nur für den Prozess Namen wäre schick...
Vielleicht gibt es da was..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); var win:integer; test2:integer; test3:integer; test4:integer; begin
win := FindWindow(nil, 'ID´s'); getWindowThreadProcessId(Win,@test2); test3 := getcurrentprocessId; test4 := GetModuleHandle('ID´s'); |
Vielleicht könnte noch kurz jemand erklären, was man bei dem GetModuleHandle eigentlich genau zurück bekommt?
Danke euch.
Grüße
Alex
Motzi - Di 13.04.04 20:05
Nein, sowas gibt es nicht... es gibt 2 Möglichkeiten: über die PSAPIs (nur NT) ->
ENUMPROCESSES oder aber über die ToolHelpAPIs (Win9x und 2k/XP)
CREATETOOLHELP32SNAPSHOT
In jedem Fall musst du aber durch die gesamte Prozess-Liste iterieren und deinen Prozess raussuchen...
Eine dritte Möglichkeit wäre eventuell WMI wo man den Prozess mit einer einfachen WQL-Abfrage suchen kann, aber das ist etwas komplizierter..!
Shadow110 - Di 13.04.04 22:44
Hi
Danke für deine Antwort. Hat eine der beiden Methoden einen Vorteil? Oder ist das eher egal?
Viele Grüße
Alex
Motzi - Di 13.04.04 23:07
Ist IMHO eigentlich ziemlich egal... vielleicht ist EnumProcesses eine Spur schneller, aber sonst...
Delphi-Laie - So 20.04.08 21:54
Titel: Re: PID zu Prozess herausfinden
Shadow110 hat folgendes geschrieben: |
Hallo.
Gibt es eine Api, die mir die PID zu einem Prozess (z.B Notepad.exe) zurückgibt?
Wenn es geht nicht über die EnumProcesses Sache, wo man erst alle Prozesse einzeln durchgehen muss.
Sowas wie getWindowThreadProcessId nur für den Prozess Namen wäre schick...
Vielleicht gibt es da was.. |
Jo, gibt es, und zwar mal wieder von unserem Luckie:
http://www.delphipraxis.net/topic30942_pruefen+ob+eine+anwendung+laeuft.html
Dort wird zwar auch nur "einzeln durchgegangen", jedoch wenigstens beim Fund abgebrochen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!