"Dzieki za pomoc" :-/
Sam znalazlem:
uses WinTypes;
function SetPrivilege(aPrivilegeName: string; aEnabled: boolean): boolean;
var
TP : TTokenPrivileges;
TPPrev : TTokenPrivileges;
Token : THandle;
dwRetLen : DWord;
begin
Result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
TP.PrivilegeCount := 1;
if (LookupPrivilegeValue(nil, PChar(aPrivilegeName), TP.Privileges[0].LUID)) then begin
if (aEnabled) then
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
TP.Privileges[0].Attributes := 0;
dwRetLen := 0;
Result := WinTypes.AdjustTokenPrivileges(Token, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
end;
CloseHandle(Token);
end;
procedure SetNormalPriority(ProcessID:Integer);
var
ProcessHandle: THandle;
begin
//STANDARD_RIGHTS_REQUIRED or PROCESS_TERMINATE
SetPrivilege('SeDebugPrivilege', True);
ProcessHandle := OpenProcess(STANDARD_RIGHTS_REQUIRED or PROCESS_SET_INFORMATION, false, ProcessID);
SetPriorityClass(ProcessHandle, NORMAL_PRIORITY_CLASS);
CloseHandle(ProcessHandle);
SetPrivilege('SeDebugPrivilege', False);
end;