首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

想手动写一个开关机程序,该怎么解决

2012-01-12 
想手动写一个开关机程序谷歌下有很多教你用shutdown来设置开关机的但我想用代码实现,调用系统api去实现自

想手动写一个开关机程序
谷歌下有很多教你用shutdown来设置开关机的
但我想用代码实现,调用系统api去实现自动开关机,同时还有监测cpu的使用率。这样可以设置在程序运行完后自动关机
大伙有什么思路说下,会给分。有调用接口的代码更好。

[解决办法]
关机好说,你开机怎么办呢
[解决办法]
通过网卡唤醒实现远程开机?或者设置BIOS实现定时开机?
[解决办法]

C/C++ code
//关闭或重启计算机bool ClExitWindowsEx(UINT uFlags){   //先判断操作系统,如果为Nt,则行提升权限,才可再关机   OSVERSIONINFO OsVersionInfo;   HANDLE hToken;   TOKEN_PRIVILEGES tkp;   OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);   GetVersionEx(&OsVersionInfo);   switch (OsVersionInfo.dwPlatformId)   {     case VER_PLATFORM_WIN32_WINDOWS: //Win 95,98     break;     case VER_PLATFORM_WIN32_NT: //Win \Nt\2000\xp     if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))        return false;     LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);     tkp.PrivilegeCount=1;  // one privilege to set     tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;     AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);     if (GetLastError()!=ERROR_SUCCESS)       return false;     break;   }   //EWX_SHUTDOWN|EWX_FORCE|EWX_POWEROFF   return ExitWindowsEx(uFlags,0);}
[解决办法]
ExitWindowsEx 
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376881(v=vs.85).aspx
[解决办法]
关机简单,提升权限后即可,关键是你开机如何开,要有硬件支持。
开机不是唤醒,9L不可行。
[解决办法]
开机有难度,硬件不是说唤醒就唤醒的,需要硬触发..软件控制开机这个问题我也一直没想明白

热点排行