win2000 xp关机问题 (30分)

  • 主题发起人 小城月光
  • 开始时间

小城月光

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]
各位大虾:
我用exitwindowsex exitwindows关闭重启系统,发现只有logoff起作用,reboot和
shutdown都没用,请指点。
var
st:systemtime;
htoken:thandle;
tkp:token_privileges;
rr:dword;
begin
openprocesstoken(getcurrentprocess(),token_adjust_privileges or token_query,htoken);
tkp.privilegecount:=1;//社权限为1
tkp.privileges[0].attributes:=se_privilege_enabled;
adjusttokenprivileges(htoken,false,tkp,0,nil,rr);//得到关机权限
exitwindowsex(ewx_shutdown or ewx_poweroff,0);//若为ewx-logoff可以起作用
end
 
var
tp : TTokenPrivileges;
Token : THandle;
begin
OpenProcessToken(GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
Token);
tp.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].LUID) then
begin
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(Token, False, tp, 0, nil, nil);
end;
CloseHandle(Token);
ExitWindowsEx(EWX_FORCEIFHUNG or EWX_SHUTDOWN, 0);
end.
 
接受答案了.
 
顶部 底部