客户端权限(50分)

  • 主题发起人 主题发起人 hotbird
  • 开始时间 开始时间
H

hotbird

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做定时自动关机的程序,用到了函数ExitWindowsEX(EWX_POWEROFF,0),但是运行的时候会出现 “System Error.Code: 1314.客户端没有所需的特权。”的错误,我用的是WindowsXP,请问如何获取系统权限呢?
 
procedure AdjustToken();
var
hdlProcessHandle : Cardinal;
hdlTokenHandle : Cardinal;
tmpLuid : Int64;
tkpPrivilegeCount : Int64;
tkp : TOKEN_PRIVILEGES;
tkpNewButIgnored : TOKEN_PRIVILEGES;
lBufferNeeded : Cardinal;
Privilege : array[0..0] of _LUID_AND_ATTRIBUTES;
begin
hdlProcessHandle := GetCurrentProcess;
OpenProcessToken(hdlProcessHandle,
(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY),
hdlTokenHandle);

// Get the LUID for shutdown privilege.
LookupPrivilegeValue('', 'SeShutdownPrivilege', tmpLuid);
Privilege[0].Luid := tmpLuid;
Privilege[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.PrivilegeCount := 1; // One privilege to set
tkp.Privileges[0] := Privilege[0];
// Enable the shutdown privilege in the access token of this
// process.
AdjustTokenPrivileges(hdlTokenHandle,
False,
tkp,
Sizeof(tkpNewButIgnored),
tkpNewButIgnored,
lBufferNeeded);

end;

//

AdjustToken;
ExitWindowsEx(EWX_REBOOT,0);
 
谢谢,我的问题解决了
 
谢谢,我的问题已经解决了
 
后退
顶部