EWX_FORCE            强迫中止没有响应的进程   
EWX_LOGOFF          中止进程,然后注销   
EWX_SHUTDOWN    关掉系统电源(如果可能的话,ATX电源就可以)   
EWX_REBOOT          重新引导系统   
EWX_SHUTDOWN    关闭系统
1.WIN 9X实现 注销 关机 重启------------------------------------------------------------------------------------------
1.--定义常数
const 
EWX_LOGOFF=0; //重新启动计算机并切换到MS-DOS方式 
EWX_SHUTDOWN=1;//关闭计算机 
EWX_REBOOT=2; //重新启动计算机 
EWX_FORCE=4; //关闭所有程序并以其他用户身份登录 
2.--执行
ExitWindowsEx(How,0); 
2.WIN 2K实现- 注销 关机 重启-------------------------------------------------------------------------------------------
1.--关机
var 
hToken:THandle; 
tkp : TOKEN_PRIVILEGES; 
ReturnLength : DWord; 
begin 
if (not OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_ALL_ACCESS or TOKEN_QUERY, hToken))then 
begin 
application.Terminate; 
end; 
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid); 
tkp.PrivilegeCount := 1; 
tkp.Privileges[0].Attributes :=SE_PRIVILEGE_ENABLED; 
ReturnLength :=0; 
AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil,ReturnLength); 
if (GetLastError() <> ERROR_SUCCESS) then 
begin 
application.Terminate; 
end; 
if (not ExitWindowsEx(EWX_POWEROFF, 0)) then 
begin 
application.Terminate; 
end; 
end; 
end. 
2.--重启
var 
hToken:THandle; 
tkp : TOKEN_PRIVILEGES; 
ReturnLength : DWord; 
begin 
if (not OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_ALL_ACCESS or TOKEN_QUERY, hToken))then 
begin 
application.Terminate; 
end; 
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid); 
tkp.PrivilegeCount := 1; 
tkp.Privileges[0].Attributes :=SE_PRIVILEGE_ENABLED; 
ReturnLength :=0; 
AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil,ReturnLength); 
if (GetLastError() <> ERROR_SUCCESS) then 
begin 
application.Terminate; 
end; 
if (not ExitWindowsEx(EWX_REBOOT, 0)) then 
begin 
application.Terminate;
end; 
end; 
end. 
3.--注销
exitwindowsex(ewx_force,0); //注销
关闭显示器 
SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, 1) ;









