在NT/2000下實現關機! (轉)

worldblog發表於2007-12-04
在NT/2000下實現關機! (轉)[@more@]

眾所周知,在9x下關機只要Exit(0,0)就行了,可是在NT/2000下這個
的結果僅是登出而已,那麼如何在NT/2000下實現關機呢?看看下面這個函式吧!

void ShutDown(void)
{
 OSVERSIONINFO osv;
 osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO;
 GetVersionEx(&osv);
 if(osv.dwPlatfod==VER_PLATFORM__NT)
 {
 HANDLE hProcess,hToken;
 TOKEN_PRIVILEGES Privileges;
 LUID luid;
 hProcess=GetCurrentProcess();
 OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);
 Privileges.PrivilegeCount=1;
 LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);
 Privileges.Privileges[0].Luid=luid;
 Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL);
 }
 ExitWindowsEx(EWX_POWEROFF,0);
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988317/,如需轉載,請註明出處,否則將追究法律責任。

相關文章