So, hab das mal soweit selber gemacht:
Delphi-Quellcode:
function GetMainThread(PID: Integer): THandle;
var
ThreadID,
pTID: Longint;
hProcess: THandle;
lpRead: Cardinal;
begin
asm
mov eax, fs:[$18]
add eax, 36
mov [pTID], eax
end;
hProcess := OpenProcess(PROCESS_VM_READ, false, PID);
ReadProcessMemory(hProcess, @pTID, @threadID, SizeOf(ThreadID), lpRead);
CloseHandle(hProcess);
Result := ThreadID;
end;
Nur leider ist meine ThreadID immer ungültig ... woran kann das liegen?