当前位置: 代码迷 >> WinCE >> 请问 SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE),要引入那个头文件
  详细解决方案

请问 SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE),要引入那个头文件

热度:396   发布时间:2016-04-28 13:54:07.0
请教 SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE),要引入那个头文件啊

如题,

声明:
#include <winioctl.h>

#define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
extern "C" __declspec(dllimport) BOOL KernelIoControl(
DWORD dwIoControlCode, 
LPVOID lpInBuf, 
DWORD nInBufSize, 
LPVOID lpOutBuf, 
DWORD nOutBufSize, 
LPDWORD lpBytesReturned);
typedef void (WINAPI *_GwesPowerOffSystem)(void);
static _GwesPowerOffSystem GwesPowerOffSystemEx;

调用
重启:KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL);
待机:GwesPowerOffSystem();
这个两个都能正常使用

关机:SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE);
找不到POWER_STATE_OFF, POWER_FORCE,这两个定义。






------解决方案--------------------
可以串口打印调试信息,看看SetSystemPowerState这个函数系统实现了没,wince有的函数是没有实现的。。。
或者就是SetSystemPowerState的使用权限问题。。。
------解决方案--------------------
刚刚看到一篇帖子,或许对你有用
http://www.cnblogs.com/wangweixf/archive/2008/12/08/1350226.html
------解决方案--------------------
搜搜你的系统里面有没有pm.h

#include <pm.h>

试试,不过支不支持,什么效果,要看你驱动里面电源管理部分做的怎么样吧。
------解决方案--------------------
探讨

刚刚看到一篇帖子,或许对你有用
http://www.cnblogs.com/wangweixf/archive/2008/12/08/1350226.html
  相关解决方案