如何用ExitWindowsEx讓WIN2000自動關機并切斷電源,試過很多源碼,沒一個能做到,都要手動按電源
機器沒問題,我用開始關機都可以自動關機并切斷電源,但我用ExitWindowsEx卻總是在最后提示可以安全關機了,讓我按POWER鍵。
請有成功經驗的人回答,不要抄文章。我試過EWX_FORCE or EWX_SHUTDOWN or EWX_REBOOT 各種組合如果用ExitWindowsEx不能達到目的,是否還有別的方法。
我設想過如果用開始關機可以,是不是可以調用開始關機,然后傳給它關機的參數讓它捃行。
或者用“rundll32.exe user.exe exitwindows”然后用shell調用。
上面那種方法可行,能否給詳細一點的說明。
機器沒問題,我用開始關機都可以自動關機并切斷電源,但我用ExitWindowsEx卻總是在最后提示可以安全關機了,讓我按POWER鍵。
請有成功經驗的人回答,不要抄文章。我試過EWX_FORCE or EWX_SHUTDOWN or EWX_REBOOT 各種組合如果用ExitWindowsEx不能達到目的,是否還有別的方法。
我設想過如果用開始關機可以,是不是可以調用開始關機,然后傳給它關機的參數讓它捃行。
或者用“rundll32.exe user.exe exitwindows”然后用shell調用。
上面那種方法可行,能否給詳細一點的說明。
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
::MessageBox (NULL, TEXT("OpenProcessToken"),TEXT ("Error"),MB_ICONERROR);
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
// Cannot test the return value of AdjustTokenPrivileges.
if (GetLastError() != ERROR_SUCCESS)
::MessageBox (NULL, TEXT("AdjustTokenPrivileges"),TEXT("Error"),MB_ICONERROR);
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_POWEROFF, 0))
::MessageBox (NULL, TEXT("ExitWindowsEx"),TEXT("Error"),MB_ICONERROR);
我的主板電源沒問題,用開始關機都可以關機后自動關電源。最近看過文章說XP的關機是用shutdown.exe控制的,可是運行shutdown.exe還是不能斷電源,還是要手動關機。在2000和XP下都是如此。
我下載了很多自稱能關機的程序源代碼,但沒一個能自動關電源的,都是出現“現在你可以安全關機”的畫面。
如果不能關電源,那自動關機的程序意義何在?
是否能够自动切断电源,我想与主板的设计有关系。我的机器就可以在关闭系统后自动切断电源。而有的机器就必须手动再按一下。
我的意见和这一样,你的机子正常关机能关电源吗?
在IBM NF5100/WIN2000 SERVER上成功次数很少,但在其他机器上可以关机。很麻烦,不只问题到底在哪里