【发布时间】:2014-08-02 19:40:27
【问题描述】:
有没有办法以编程方式从连接待机唤醒 Windows 8.1?根据我的要求,可以使用商店应用后台任务或会话 0 服务。
我的场景是我有一个商店应用后台任务要定期调用(或由推送通知触发)。当调用后台任务时,它会检查是否满足某个条件。如果是这样,它应该执行一个操作来将设备从连接待机中唤醒。我需要退出 CS 的原因是我需要在满足条件时启动一个进程。这个过程将服务于一个 TCP 连接运行一段延长的时间。它有点像远程桌面服务器,它会根据连接请求自动唤醒,但通常处于连接待机状态以节省电量(设备使用电池供电)。
我想到的第一种方法是使用带有“唤醒计算机运行”选项的计划任务。但是根据this post的说法,在连接待机模式下它不会唤醒机器。
现在如果有办法以编程方式执行此操作,将其作为商店应用程序后台任务或会话 0 服务执行此操作是合乎逻辑的,这两者都有很短的运行机会在连接待机期间。但问题是 - 执行什么操作来退出连接待机?
根据Connected standby wake sources,各种外围硬件可以唤醒设备。例如,按下电源按钮通过 GPIO 中断唤醒设备。所以问题归结为有没有办法通过生成这样的 GPIO 中断来“模拟”按下电源按钮?我不太了解 Windows 内核/驱动程序编程。任何建议将被认真考虑。我认为这是一种可行的方法,因为WDTF method 可以将系统置于 CS 并在给定时间间隔后唤醒。
另一种看似可行的方法是将 toast 通知生成为“VoIP”应用程序。正如Introduction to Connected Standby 中提到的,锁屏应用程序安排的后台任务可以发送 toast 通知,ONLY 会在显示屏关闭的情况下发出短促的声音。只有在用户按下电源按钮后,才会显示吐司。所以我假设以这种方式生成 toast 不会唤醒设备。但是,该文档确实提到“VoIP”应用程序可以生成更长的 toast 通知、自定义铃声、AND 显示打开ON。我认为在这种情况下设备可能会被唤醒。但该文档没有提供任何关于如何编写此类“VoIP”应用程序的参考。
【问题讨论】:
标签: windows windows-store-apps driver windows-8.1 standby