• 如何在系统休眠的情况下保持特殊设备供电(如GPS供电)


    在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机型上试验通过)

                                         

  • 相关阅读:
    最小路径和
    S2 深入.NET和C#编程 机试测试错题积累
    S2 深入.NET和C#编程 笔试测试错题积累
    影院项目的内容信息
    抽象类和抽象的方法注意事项
    六种设计原则
    体检套餐的笔记
    C#图解 类和继承
    深入类的方法
    S2 深入.NET和C#编程 三:使用集合组织相关数据
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458397.html
Copyright © 2020-2023  润新知