C/C++实现跨平台重启系统
2011-08-22 14:11
375 查看
/** * @brief restartSystem * * Detailed description. */ void restartSystem() { #ifdef WIN32 HANDLE hToken; TOKEN_PRIVILEGES tkp; LUID luid; // Get version info to determine operation OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); if (GetVersionEx(&osvi) == 0) { return; } // Determine the platform if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { // Windows NT 3.51, Windows NT 4.0, Windows 2000, // Windows XP, or Windows .NET Server if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { } else { LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Luid = luid; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, 0); } ExitWindowsEx(EWX_REBOOT, 0); } #else system("reboot"); #endif }
相关文章推荐
- C++ 实现系统注销,重启,关机的方法
- C++ 实现系统注销,重启,关机的方法
- C/C++实现跨平台关闭系统
- Cocos2d-x中用C++获取当前系统时间,实现跨平台
- C++实现跨平台游戏开发之Allegro引擎
- 学生管理系统设计与实现(C++实现)
- 学生管理系统c++链表实现
- c++实现windows和linux之间跨平台的方式
- C++实现调用系统时间简单示例
- 使用C++结合文件操作和链表实现学生成绩管理系统
- Android 系统重启与关机:Java 代码实现(3)
- 用C++实现一个Log系统
- C++通过写注册表实现将文件夹映射为系统虚拟盘
- 内存文件系统c/c++实现(VS2008)
- 推荐系统之基于二部图的个性化推荐系统原理及C++实现
- C++开源跨平台OJ系统判题核心FreeJudger(三)——log4cxx同时使用多个日志文件
- 用C++实现跨平台游戏开发之Irrlicht引擎
- C++跨平台GUI库及其实现
- 如何实现系统重启
- C++实现简单的信息管理系统