c语言如何实现关机求原代码 --不能用 shutdown 的

来源:百度知道 编辑:UC知道 时间:2024/06/27 04:46:30

不能用shutdown就只能直接调用win32Api ExitWindowsEx(EWX_POWEROFF,0); 了下面是别人写的一段代码,你可以参考。还有许多其他方法

# include <windows.h>
# include <mmsystem.h>
void system_off()
{ // 关机
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);
}

int ma