您的位置:首页 > 编程语言 > C语言/C++

VC++下实现系统关机、重启

2015-06-30 16:57 483 查看
关机调用:

文章来源:http://dqifa.blog.163.com/blog/#m=0&t=1&c=fks_095066086083081065092081074071093084084075087080083
MyExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE | EWX_POWEROFF);

重启调用:

MyExitWindowsEx(EWX_REBOOT | EWX_FORCE);

具体实现:

BOOL IsWIN32_NT()

{

OSVERSIONINFO osv;

osv.dwOSVersionInfoSize = sizeof OSVERSIONINFO;

GetVersionEx(&osv);

return osv.dwPlatformId == VER_PLATFORM_WIN32_NT;

}

BOOL MyExitWindowsEx(UINT uFlags)

{

if(IsWIN32_NT())

{

HANDLE hProcess, hToken;

TOKEN_PRIVILEGES Privileges;

hProcess = GetCurrentProcess();

OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken);

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &Privileges.Privileges[0].Luid);

Privileges.PrivilegeCount = 1;

Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &Privileges, 0, (PTOKEN_PRIVILEGES)NULL, NULL);

}

return ExitWindowsEx(uFlags, 0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: