DELPHI中調用API函數(shù)ExitWindowsEX可以實現(xiàn)系統(tǒng)的關機,注銷,和重啟。
關機:ExitWindowsEx(EWX_POWEROFF OR EWD SHUTDOWN,0)
注銷:ExitWindowsEx(EWX_LOGOFF,0)
重啟:ExitWindowsEx(EWX_REBOOT,0)
不過函數(shù)ExitWindowsEx在完成系統(tǒng)的關機、注銷、重啟動作之前必須要使應用程序獲得系統(tǒng)相應的權限。
可以在窗體初始化時進行操作:
procedure TForm1.FormCreate(Sender: TObject);
var
hToken : THandle;
Tkp : TTokenPrivileges;
Zero:DWORD;
begin
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or 
TOKEN_QUERY,hToken);
LookupPrivilegeValue(nil,‘SeShutdownPrivilege‘,tkp.Privileges[0].Luid);
Tkp.PrivilegeCount :=1;
Tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,False,Tkp,SizeOf(TTokenPrivileges),nil,Zero);
end;
執(zhí)行以上代碼,應用程序就獲得了系統(tǒng)關機、注銷、重啟的權限了,然后加上ExitWindowsEx(EWX_POWEROFF OR EWD SHUTDOWN,0)就行了。
在xp中運行成功。
  

 
                         
                                
 
                                


 
                        
