如何通过编程唤醒连接待机模式下的Windows 8.1

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

0
你可以使用微控制器(例如Arduino)或类似的设备(例如Raspberry Pi),通过USB电缆模拟有效的USB事件(如鼠标点击或按键),以便每隔X分钟唤醒Windows 8.1。
假设你的应用程序将Windows 8.1重新转换为待机模式。

那不是理想的情况。要求的重点是为了节省电池电量。现在我需要花费额外的电池电量来驱动一个始终开启的设备,RPy比Arduino更糟糕。此外,我的Windows设备需要经常定期唤醒。如果有一种通过代码唤醒设备的方法,它将能够在功耗方面达到最佳状态,因为可以通过推送通知调用代码,以确保必须唤醒设备时才会被唤醒。 - KFL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接