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 Child Process ID (https://www.delphipraxis.net/139835-child-process-id.html)

sensei2 6. Sep 2009 15:56


Child Process ID
 
Hallo,
ich starte ein Programm mit CreateProcess und lasse mir ProcessID bzw. ThreadID zurückgeben.
Wie kann ich die ProccesIDs bzw. ThreadIDs von Programmen ermitteln, die das mit CreateProcess gestartete Programm gestartet hat? (Also die Child Prozesse)

jaenicke 6. Sep 2009 16:06

Re: Child Process ID
 
Via WMI kannst du alle Prozesse auf den Parent-Prozess prüfen, wenn der mit deinem gestarteten übereinstimmt, wurde das Programm von diesem gestartet.

Problematisch wird es an der Stelle, wenn ein Prozess nicht mehr läuft und die ID neu vergeben wird. Damit muss man ggf. rechnen.

sensei2 6. Sep 2009 16:10

Re: Child Process ID
 
mit welcher Funktion geht das?

Edit:
hab es hier gefunden: http://www.delphipraxis.net/internal...ct.php?t=99486

Wolfgang Mix 6. Sep 2009 16:25

Re: Child Process ID
 
BTW: Erstmal herzlich willkommen in der DP :dp:

Gruß

Wolfgang

Zacherl 6. Sep 2009 17:22

Re: Child Process ID
 
Am besten injizierst du eine DLL in deinen Child Prozess, welche alle CreateProcess Aufrufe hookt. Damit bekommst du sicher alle Child PIDs und Handles mit.

Apollonius 6. Sep 2009 19:51

Re: Child Process ID
 
Ich würde den Kindprozess mit MSDN-Library durchsuchenAssignProcessToJobObject in einen Job stecken. Alle "Nachkommen" eines Prozesses in einem Job sind im selben Job. Mit MSDN-Library durchsuchenQueryInformationJobObject lassen sich dann alle Prozess-IDs auflisten.


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