Hi Bernhard, hier nochmal als separater thread )
Offiziel gibts den Weg über das ToolHlp API für Win95 und das PSAPI unter NT/2000. Alle obigen Messages zielen nun darauf ab unter Win9x komplett ohne API mithilfe der internen Kernel Strukturen das gleiche zu erreichen. Nun ich will Dir die Antwort auch nicht vorenthalten, beachte aber das es nur unter win9x funktioniert und alles ohne Garantie ist, aber garantiert bei meinen bisherigen Test's unter allen Win9x Versionen funktionierte :=)
<pre>
function GetParentProcess: String;
var
P: PChar;
begin
asm
MOV EAX,FS:[030h] // ProcessDB aktueller Process
MOV EAX,[EAX + 048h] // ProcessDB.Parent = ProcessDB durch den gestartet wurde
MOV EAX,[EAX + 040h] // ProcessDB.Parent.Environment
MOV EAX,[EAX + 008h] // ProcessDB.Parent.Environment.CmdLine
MOV P,EAX
end;
Result := P;
end;
</pre>
Gruß hagen
Offiziel gibts den Weg über das ToolHlp API für Win95 und das PSAPI unter NT/2000. Alle obigen Messages zielen nun darauf ab unter Win9x komplett ohne API mithilfe der internen Kernel Strukturen das gleiche zu erreichen. Nun ich will Dir die Antwort auch nicht vorenthalten, beachte aber das es nur unter win9x funktioniert und alles ohne Garantie ist, aber garantiert bei meinen bisherigen Test's unter allen Win9x Versionen funktionierte :=)
<pre>
function GetParentProcess: String;
var
P: PChar;
begin
asm
MOV EAX,FS:[030h] // ProcessDB aktueller Process
MOV EAX,[EAX + 048h] // ProcessDB.Parent = ProcessDB durch den gestartet wurde
MOV EAX,[EAX + 040h] // ProcessDB.Parent.Environment
MOV EAX,[EAX + 008h] // ProcessDB.Parent.Environment.CmdLine
MOV P,EAX
end;
Result := P;
end;
</pre>
Gruß hagen
Comment