Seite 1 von 1
Prozess gestartet von...
Verfasst: 27.03.2008 10:37
von Jilocasin
Hi
Hab mal wieder ein kleines Problem.. ich würde gern herausfinden, bei Eingabe einer Prozess-ID, von welchem Prozess (ID, oder Filename.. mir egal) dieser gestartet wurde. Es scheint ja irgendwo abgelegt zu sein, da so Kram wie Security TaskMan dies auch auslesen können.
Hoffe auf Hilfe..

Re: Prozess gestartet von...
Verfasst: 27.03.2008 15:04
von Thorium
Jilocasin hat geschrieben:Hi
Hab mal wieder ein kleines Problem.. ich würde gern herausfinden, bei Eingabe einer Prozess-ID, von welchem Prozess (ID, oder Filename.. mir egal) dieser gestartet wurde. Es scheint ja irgendwo abgelegt zu sein, da so Kram wie Security TaskMan dies auch auslesen können.
Hoffe auf Hilfe..

Das ist die Parent PID, die du suchst.
Schau dir mal den Source an:
http://www.purebasic.fr/german/viewtopic.php?t=12401
Da wird die durch enumerieren der Prozesse ermittelt.
Verfasst: 27.03.2008 17:24
von Jilocasin
Okay, danke vielmals
Wäre es auch noch möglich die Startparameter zu ermitteln?
Das ParentPID hab ich jetzt mal so umgebastelt:
Code: Alles auswählen
Procedure GetProcessParentID(PID)
ProcessEntry.PROCESSENTRY32
ProcessEntry\dwSize = SizeOf(ProcessEntry)
ProcessSnapHandle.l = CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS,0)
RetVal.l = Process32First_(ProcessSnapHandle, ProcessEntry)
While RetVal
If ProcessEntry\th32ProcessID = PID
CloseHandle_(ProcessSnapHandle)
ProcedureReturn ProcessEntry\th32ParentProcessID
EndIf
RetVal = Process32Next_(ProcessSnapHandle, ProcessEntry)
Wend
CloseHandle_(ProcessSnapHandle)
ProcedureReturn 0
EndProcedure
Verfasst: 27.03.2008 17:41
von Thorium
Jilocasin hat geschrieben:
Wäre es auch noch möglich die Startparameter zu ermitteln?
Hm, schwierig. Soweit ich weis kann man nur die Startparameter des eigenen Prozesses ermitteln. Das heisst man müsste Code in den Parent Prozess injizieren, der dort die Startparameter ermittelt und dann an den Child Prozess übermittelt. Vieleicht gibts aber auch eine einfachere Möglichkeit.