[WIN|LIN] Namen des Parent-Prozesses ermitteln
Verfasst: 03.02.2010 23:26
Die Idee habe ich von hier: http://www.codeproject.com/KB/threads/ParentPID.aspx
(Nochmal Danke an TomS, der mir den Link zu dieser Seite geschickt hat)
Für Windows:
Für Linux (von Marvin):
(Nochmal Danke an TomS, der mir den Link zu dieser Seite geschickt hat)
Für Windows:
Code: Alles auswählen
EnableExplicit
Procedure.s GetProcessName(ProcID.i)
Protected hSnap, ProcEntry.PROCESSENTRY32, result.s
hSnap=CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS,0)
If hSnap
ProcEntry\dwSize=SizeOf(PROCESSENTRY32)
If Process32First_(hSnap,@ProcEntry)
Repeat
If ProcID=ProcEntry\th32ProcessID
result=PeekS(@ProcEntry\szExeFile,260,#PB_Ascii)
Break
EndIf
Until Not Process32Next_(hSnap,@ProcEntry)
EndIf
CloseHandle_ (hSnap)
EndIf
ProcedureReturn result
EndProcedure
Procedure.s GetParentProcessName()
Protected hSnap, ProcEntry.PROCESSENTRY32, cProcID=GetCurrentProcessId_(), result.s
hSnap=CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS,0)
If hSnap
ProcEntry\dwSize=SizeOf(PROCESSENTRY32)
If Process32First_(hSnap,@ProcEntry)
Repeat
If cProcID=ProcEntry\th32ProcessID
result=GetProcessName(ProcEntry\th32ParentProcessID)
Break
EndIf
Until Not Process32Next_(hSnap,@ProcEntry)
EndIf
CloseHandle_ (hSnap)
EndIf
ProcedureReturn result
EndProcedure
Debug GetParentProcessName()Code: Alles auswählen
Procedure.s GetParentProcessName()
fd = ReadFile(-1, "/proc/" + Str(getppid_()) + "/status")
If Not fd
ProcedureReturn ""
EndIf
Repeat
line.s = ReadString(fd)
If Left(line, 5) = "Name:"
CloseFile(fd)
ProcedureReturn Mid(line, 7)
EndIf
Until Eof(fd)
CloseFile(fd)
ProcedureReturn ""
EndProcedure
OpenConsole()
PrintN("Parent: " + GetParentProcessName())