ProzessID´s ermitteln
-
Halli Hallo
Wie kann ich die Prozess IDs ermitteln? D.h ich starte eine exe aus einem script oder von einer anderen exe heraus. Diese gestartete exe erhält jetzt ihre Prozess ID wie kann ich diese jedoch abfragen?
Ich kenne bisher nur die funktion
GetCurrentProcessId();
Welche mir wie es der name schon sagt leider nur meine eigene Prozess ID zurückliefert.
-
Hi,
sorry, ich hab's nicht verstanden: Von welchem Prozess möchtest Du die ProzessID haben, wenn Du Dein Programm startest ?
Gruß,
Simon2.
-
Mit den Toolhelp Funktionen:
Du erstellst zuerst einen Snapshot mit CreateToolhelp32Snapshot.
Dann kannst du mit Process32Next und Process32First durch alle Prozesse wandern,
und deren PID herausfinden.
-
Hi Simon natürlich die des durch die exe aufgerufenen Prozesses
Main.Exe ruft weitere 2te.Exe auf von 2te.Exe hätte ich gerne die PID
-
Exitus222 schrieb:
Hi Simon natürlich die des durch die exe aufgerufenen Prozesses
Main.Exe ruft weitere 2te.Exe auf von 2te.Exe hätte ich gerne die PID
Aha !! Danke.
Leider weiß ich da auch nicht wirklich was zu, aber: Mit welcher Lib erzeugst Du denn den zweiten Prozess ? IIRC geben einem POSIX-konforme Sachen etwas zurück, mit dem man sowas rausfinden kann ... und in einer Unix-Shell kann man das auch mit $! abfragen ...
Gruß,
Simon2.
-
Ja das is wiedermal keine C++ sondern eine WIN32 Frage. Aber die Antwort ist: wenn du CreateProcess verwendest, dann bekommst du in PROCESS_INFORMATION (output Parameter) für den neuen Process und dessen Main-Thread jeweils die ID und ein HANDLE. Die HANDLEs gehören danach dir (musst DU freigeben - CloseHandle!), und die IDs sind mindestens solange gültig bis du das zugehörige Handle freigegeben hast.
BTW: Mit WaitForInputIdle(processHandle, timeout) kannst du warten bis der Prozess "seine Hauptschleife betreten hat" und mit WaitForSingleObject(processHandle, timeout) kannst du warten bis der Prozess terminiert hat.
Blubb...Steht im übrigen alles in der MSDN.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Plotzenhotz schrieb:
...wenn du CreateProcess verwendest, dann bekommst du in PROCESS_INFORMATION (output Parameter) für den neuen Process und dessen Main-Thread jeweils die ID und ein HANDLE...
Aha, also auch so, wie ich dachte...
@Plotz: möchtest Du Dich nicht mal registrieren ? Ich finde, das hast Du Dir redlich verdient ...

Gruß,
Simon2.
-
Naja, ... nachdem ich vor ein paar Wochen erst meine Email Adresse wegen ~70 Spam Mails/Tag ändern musste hab ich nicht viel Lust die irgendwo im Internetz reinzuschreiben wo ich nicht muss.
Kann man in dieser Hinsicht diesem Forum vertrauen? Also dass *keiner* (ausgenommen Admins & Board-Owner) die Adresse einsehen kann?
-
Jo, also -wenn ich mal einfach so reinschneien darf^^- kann man...du musst ja dein Mail nit im Profil angeben
. Nur bei der Registrierung.