如何在系统休眠的情况下保持特殊设备供电(如GPS供电)
2009-04-03 09:37
253 查看
在PPC上当系统休眠的时候会把很多设备的电源关掉,但是一些应用程序需要一些设备一直工作供电,比如GPS.但是MS官方说的这就需要其它的处理.SetPowerRequirement并不能解决问题,调用该函数在系统断电的时候还是会把指定的设备电源切掉.
正确的做法应该是这样.
1SetPowerRequirement把需要供电的设备名称定好,比如GPS设备一般就是"GPD0:";
2CreateMsgQueue建立消息队列ptr = CreateMsgQueue(L"PtrSvsPowerNotify", &options);
3PowerNotifyHandle = RequestPowerNotifications(ptr, PBT_TRANSITION);
4一般需要另外起一个线程
res =WaitForSingleObject(ptr, 29000);
if (res == 0)
{
ReadMsgQueue(ptr, buffer, 1000, ref nRead, WinAPI.INFINITE, ref flags);
POWER_BROADCAST pb;
5.判断pb.SystemPowerState是不是"unattended"如果是则调用PowerPolicyNotify(WinAPI.PPN_UNATTENDED, 1);
按照以上的步骤就可以实现当系统休眠的时候指定的设备不会断电了.(该方法在HTC3300机型上试验通过)
正确的做法应该是这样.
1SetPowerRequirement把需要供电的设备名称定好,比如GPS设备一般就是"GPD0:";
2CreateMsgQueue建立消息队列ptr = CreateMsgQueue(L"PtrSvsPowerNotify", &options);
3PowerNotifyHandle = RequestPowerNotifications(ptr, PBT_TRANSITION);
4一般需要另外起一个线程
res =WaitForSingleObject(ptr, 29000);
if (res == 0)
{
ReadMsgQueue(ptr, buffer, 1000, ref nRead, WinAPI.INFINITE, ref flags);
POWER_BROADCAST pb;
5.判断pb.SystemPowerState是不是"unattended"如果是则调用PowerPolicyNotify(WinAPI.PPN_UNATTENDED, 1);
按照以上的步骤就可以实现当系统休眠的时候指定的设备不会断电了.(该方法在HTC3300机型上试验通过)
相关文章推荐
- 如何在系统休眠的情况下保持特殊设备供电(如GPS供电)
- 如何在系统休眠的情况下保持特殊设备供电(如GPS供电)
- 如何让android设备进入休眠时保持网络不断开?
- 如何让android设备进入休眠时保持网络不断开?
- 如何让android设备进入休眠时保持网络不断开?
- Android系统移植与调试之------->如何修改Android设备的默认休眠时间
- 如何防止启动的后台Service在系统休眠的情况下不被休眠
- linux 中如何查询到系统新添加的磁盘设备
- 【win 2003系统硬盘如何保持稳定】
- 如何防止移动设备对系统的造成危险?
- android 中对 gps 默认关闭+语言默认中文的设置+时区设置+修改系统名字+修改系统默认时间+修改屏幕休眠时间+修改usb debug默认关闭+mtk修改默认字体大小
- 如何在Windows Server 2008 R2没有磁盘清理工具的情况下使用系统提供的磁盘清理工具
- 如何使用系统设备枚举器
- 调度事务管理功能 供电系统运行情况的数据归档和统计报表功能
- 如何枚举windows系统中的所有设备
- Android系统移植与调试之------->如何修改Android设备的开机第一阶段Logo
- Android系统移植与调试之------->如何修改Android设备的开机第一阶段Logo
- [置顶] Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏的时候的切换与显示
- Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)
- 如何在MAC机器中实现移动设备WiFI上网(没有专门的无线路由器的情况)