我有一个Windows桌面程序(Tweetz),可以在运行时中断/阻止睡眠模式。该计划的性质是监控推特并在推文到达时更新用户界面。我怀疑网络活动和/或更新UI正在阻止/中断睡眠模式。
是否有可以告诉Windows应用程序不应该阻止睡眠的系统API?
答案 0 :(得分:1)
我建议采用以下方法。在Windows服务中对Twitter监视器进行编码,并缓冲您需要显示的任何消息。对于这些消息,请检查系统是否处于睡眠模式或桌面是否已锁定(根据您的应用程序规范)。与桌面应用程序建立一些通信机制,并在需要/可能时传输消息。该服务不会阻止您的系统进入休眠状态,您可以使用SERVICE_ACCEPT_SESSIONCHANGE通过SetServiceStatus()监视会话状态更改。您还可以使用OnSessionChange事件。
答案 1 :(得分:1)
也许Windows成功睡眠,但您的应用会立即通过发送网络流量唤醒它。如果是这样,您可以处理WM_POWERBROADCAST
条消息,尤其是PBT_APMQUERYSUSPEND和PBT_APMRESUMEAUTOMATIC。暂停时停止网络流量,并在Resume上重新启动它。