NT下如何实现关机?
biner 2000-05-24 04:41:00 在NT下关闭计算机,先要从进程获得关机权限,我的代码如下,但是老不成功,不知为什么,请高手指点,谢谢!
procedure TForm1.Button1Click(Sender: TObject);
var
hToken:THandle;
tkp,tkp1:TOKEN_PRIVILEGES;
a:DWORD;
begin
OpenProcessToken(GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
LookupPrivilegeValue(NiL,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
// LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);
tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, tkp1,a);
InitiateSystemShutdown(nil,nil,0,TRUE,TRUE);
// exitwindowsex(EWX_SHUTDOWN,0);这样也不行
end;
在VC中有枚举类型SE_SHUTDOWN_NAME,DELPHI中怎么没有?