Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
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()
Sorry - chris -,
aber mein Code läuft auch im Unicode-Modus perfekt, deiner hingegen fehlerhaft.
@Marvin: Hab deinen Code mal meinem 1. Beitrag hinzugefügt.
(Wäre aber noch gut, wenn du ihn den hier im Unterforum erwünschten Standards anpassen würdest. Oder soll ich das machen?)
Zudem ist es auch nicht ganz elegant, mitten in der Schleife ProcedureReturn und nochmal CloseFile zu schreiben. Das kannst du ebenfalls cleverer lösen. Schau dir mal meinen Code an.