如题,在机器上长按电源键是可以 实现 关机 和 休眠 操作的
自己做个小软件,想要在代码中实现 关机,休眠,重启 功能
从网上找了些代码。休眠和重启是实现了,关机貌似很复杂的样子,也没实现。求帮助。
休眠
- C/C++ code
g_hcoreDll = LoadLibrary(_T("coredll.dll")); if(g_hcoreDll) { GwesPowerOffSystemEx = (_GwesPowerOffSystem)GetProcAddress(g_hcoreDll,_T("GwesPowerOffSystem")); GwesPowerOffSystemEx(); }
重启 先引入 #include <winioctl.h>
- C/C++ code
KernelIoControl(IOCTL_HAL_REBOOT,NULL,0,NULL,0,NULL);
关机,我看都网上都建议使用 SetSystemPowerState 然后需要 OEM支持
但是 根本没有 POWER_STATE_OFF 参数 啊,
请问该怎么实现,最后能解释下原理。谢谢
------解决方案--------------------
除非他的驱动支持,不然别想做了。
------解决方案--------------------
------解决方案--------------------
关机:SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE);
驱动支不支持,可以问下厂家吧。
------解决方案--------------------
import the dll head
------解决方案--------------------
------解决方案--------------------
哥来帮你解决一下:
BOOL SystemPowerOff(void)
{
HANDLE hRep = CreateEvent(NULL, FALSE, FALSE, _T("__PowerOffRepEvent__"));
if(!hRep)
return FALSE;
SetEventData(hRep, 1);
Sleep(1);
SetEvent(hRep);
Sleep(2);
CloseHandle(hRep);
return TRUE;
}
------解决方案--------------------
这个是WinCE的标准接口啊,声明一下。
extern "C"
BOOL SetEventData(
HANDLE hEvent,
DWORD dwData
);
------解决方案--------------------
驱动需要支持