在Wince5.0中实现关机功能 ——转载
2009-02-05 20:59
706 查看
在Wince5.0中实现关机功能 wince5.0带的电源管理驱动只实现了“休眠(SUSPEND)”功能,未实现“关机(SHUT_DOWN)”功能。调用函数 SetSystemPowerState()时,无论参数是POWRE_STATE_OFF还是POWRE_STATE_SUSPEND,最终均为 SUSPEND。如果需要关机,还需要其他的办法。 我看过有人专门写了一个PowerKey的驱动,用来实现关机。但是这种方法的问题在于,关机时系统不会通知应用程序,往往需要自己设计一套消息由PowerKey驱动来通知应用程序,在很多时候非常的不方便。 我使用的方法是利用Wince自身的电源管理驱动,与系统结合的比较紧密 1. 建立新的PM PDD(platform.cpp),系统自带的PDD在WINCE500/PUBLIC/COMMON/OAK/DRIVERS/PM/PDD目录,可以选取一个作为修改的模板.同时,修改电源管理的SOURCE文件,使用新的PDD。 2.PlatformMapPowerStateHint()函数负责把电源状态标记映射为电源状态的名称,在此函数中做如下修改: 把POWER_STATE_OFF映射为shutdown而不是suspend 3. PlatformSetSystemPowerState()函数负责设置电源的状态,函数中有这么一句 if((dwNewStateFlags & POWER_STATE_RESET) != 0) 这一句监测是否用户准备RESET系统,并在后面做相应的RESET动作。 在此之前,增加if((dwNewStateFlags & POWER_STATE_OFF) != 0){关机代码} 4. 在注册表文件中增加 ; wwwwww, the following key is added to impliment the shut down function(not suspend) ; the application should deal with the POWER_BROADCAST(to POWER_STATE_OFF) [HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Control"Power"State"ShutDown] "Default"=dword:4 ; D4 "Flags"=dword:20000 ; POWER_STATE_OFF 5. 修改到此完成,关机时调用 SetSystemPowerState即可,StateFlags参数设为POWER_STATE_OFF。关机时,系统会向应用程序发送POWER_BROADCAST(to POWER_STATE_OFF)消息
原文地址http://www.cnblogs.com/wangweixf/archive/2008/12/08/1350226.html
原文地址http://www.cnblogs.com/wangweixf/archive/2008/12/08/1350226.html
相关文章推荐
- 通过修改电源管理驱动,实现WinCE5.0关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 通过修改电源管理驱动,实现WinCE5.0关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能
- 在Wince5.0中实现关机功能【转】
- 使用 Redis 实现排行榜功能 (转载 https://segmentfault.com/a/1190000002694239)
- 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- 安卓手机连接蓝牙打印机实现打印功能 (转载)
- 让Android程序获得系统的权限,实现关机重启,静默安装等功能
- 程序的开机关机重启,开机启动,休眠功能delphi实现(使用AdjustTokenPrivileges提升权限)
- JQuery禁用右键、文本选择功能、复制按键的实现(转载)
- C#如何实现记住密码,自动登录功能?【转载】
- 在windows平台上使用Qt和libmodbus库实现modbus主机功能--转载
- 转载:WinCE5.0/6.0下,通过command line实现自动化编译