Hier stellt
Luckie eine Möglichkeit vor, die ID des Parent-Prozesses zu ermitteln.
Eine kleine Erklärung, für diejenigen, die nicht wissen, was man sich darunter vorzustellen hat:
Wird euer Programm beispielsweise von einer anderen Anwendung gestartet, so bekommt ihr mit der folgenden Funktion die ID des Prozesses, der zur Anwendung gehöhrt, die euer Programm aufgerufen hat.
Delphi-Quellcode:
uses
tlhelp32;
function GetParentID(ID: DWORD; var IDParent: DWORD): DWORD;
var
hSnapShot: THandle;
pe32: TProcessEntry32;
begin
hSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hSnapShot <> 0 then
begin
pe32.dwSize := sizeof(TProcessEntry32);
if Process32First(hSnapShot, pe32) then
begin
repeat
if pe32.th32ProcessID = GetCurrentProcessId then
begin
IDParent := pe32.th32ParentProcessID;
break;
end;
until Process32Next(hSnapShot, pe32) = False;
end;
CloseHandle(hSnapShot);
end;
result := GetLastError;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ParentID: DWORD;
dwReturn: DWORD;
begin
dwReturn := GetParentID(GetCurrentProcessId, ParentID);
if dwReturn = 0 then
ShowMessage(IntToStr(ParentID))
else
ShowMessage(SysErrorMessage(dwReturn));
end;
Weitere Suchbegriffe: Process, Prozess