Das Zitat was du angefügt hast bezieht sich alleine auf das
Handle das du mit OpenProcess von dem Process bekommen hast in dem den Thread erstellen willst.
D.h. es sollte bei allen Prozessen funktionieren die du EROLGREICH mit OpenProcess geöddnet hast. Bei Systemprozessen musst du vorher die Rechte bekommen.
der Code dafür:
Delphi-Quellcode:
function GetDebugPrivilege: boolean; stdcall;
var hToken,rel: cardinal;
tkp: TOKEN_PRIVILEGES;
luid: int64;
begin
result := false;
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
if LookupPrivilegeValue(nil, 'SeDebugPrivilege', luid) then
begin
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.Privileges[0].Luid := luid;
result := AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), nil, rel);
end;
CloseHandle(hToken);
end;
end;