阅读:1165回复:2
W2K关机
W2K下,系统是调用什么程序来关机(这个关机的功能不会是做在系统内部的把)
|
|
|
沙发#
发布于:2001-08-29 18:14
调用win32 API函数,一般为ExitWindowsEx,不过在w2000下,可能不能直接调用,需要一些其他的信息,例如版本号等,可以在MSDN中找到例子。
|
|
|
板凳#
发布于:2001-08-29 18:54
这是我从网上搞来的,不敢独享:
众所周知,在9x下关机只要ExitWindows(0,0)就行了,可是在NT/2000下这个函数 的执行结果仅是注销而已,那么如何在NT/2000下实现关机呢?看看下面这个函数吧! void ShutDown(void) { OSVERSIONINFO osv; osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO; GetVersionEx(&osv); if(osv.dwPlatformId==VER_PLATFORM_WIN32_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); } |
|