procedure SetPrivilege;
 
var
 
OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
 
ReturnLength: dword;
 
hToken: THandle;
 
Luid: int64;
 
begin
 
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
 
LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
 
TokenPrivileges.Privileges[0].luid := Luid;
 
TokenPrivileges.PrivilegeCount := 1;
 
TokenPrivileges.Privileges[0].Attributes := 0;
 
AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
 
OldTokenPrivileges.Privileges[0].luid := Luid;
 
OldTokenPrivileges.PrivilegeCount := 1;
 
OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
 
AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
 
end;

http://www.delphi6.com/thread-3.htm

 

相关文章:

  • 2023-03-11
  • 2021-05-29
  • 2022-01-06
  • 2021-06-11
  • 2021-10-31
  • 2022-12-23
  • 2021-08-09
  • 2021-12-07
猜你喜欢
  • 2022-12-23
  • 2022-01-22
  • 2021-06-23
  • 2022-01-23
  • 2022-01-19
  • 2021-12-15
  • 2022-12-23
相关资源
相似解决方案