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