大多数电子产品均具备省电功能.PDA等一类handheld设备对这方面的要求由为突出.
今天要搞个suspend功能,本来以为非常有难度.因为之前没有碰过这方面,总觉的涉及到了电源管理.找了会资料,也就是网上到处翻翻,才发现WINCE 有这方面的支持.哈哈,大家别笑我孤陋寡闻啊.在 Windows CE .NET 4.0 和之后的版本均有支持(Header: Pm.h. Link Library: Coredll.lib.)函数为:SetSystemPowerState();
函数原形:
DWORD SetSystemPowerState(
LPCWSTR psState,
DWORD StateFlags,
DWORD Options
);
-
psState :被请求的系统,可为NULL
StateFlags :参照下表
-
Flag Description POWER_STATE_ON On state POWER_STATE_OFF Off state POWER_STATE_CRITICAL Critical state POWER_STATE_BOOT Boot state POWER_STATE_IDLE Idle state POWER_STATE_SUSPEND Suspend state POWER_STATE_RESET Reset state
Options :强制为:POWER_FORCE
成功则返回:ERROR_SUCCESS
现在举个简单的例子说明:
typedef enum _STATE_{
RUN,
SUSPEND
}STATE,*pSTATE;
if(STATE==RUN)
{
SetSystemPowerState(NULL,POWER_STATE_SUSPEND,POWER_FORCE); //suspend
STATE=SUSPEND;
}else{
SetSystemPowerState(NULL,POWER_STATE_ON,POWER_FORCE); //resume
STATE=RUN;
}
过程大概就这样了......,水平有限,有不对的地方还望大家帮忙指出,谢谢.