防止Windows桌面应用程序中断睡眠

时间:2016-05-04 14:55:06

标签: .net wpf windows winapi windows-applications

我有一个Windows桌面程序(Tweetz),可以在运行时中断/阻止睡眠模式。该计划的性质是监控推特并在推文到达时更新用户界面。我怀疑网络活动和/或更新UI正在阻止/中断睡眠模式。

是否有可以告诉Windows应用程序不应该阻止睡眠的系统API?

2 个答案:

答案 0 :(得分:1)

我建议采用以下方法。在Windows服务中对Twitter监视器进行编码,并缓冲您需要显示的任何消息。对于这些消息,请检查系统是否处于睡眠模式或桌面是否已锁定(根据您的应用程序规范)。与桌面应用程序建立一些通信机制,并在需要/可能时传输消息。该服务不会阻止您的系统进入休眠状态,您可以使用SERVICE_ACCEPT_SESSIONCHANGE通过SetServiceStatus()监视会话状态更改。您还可以使用OnSessionChange事件。

答案 1 :(得分:1)

也许Windows成功睡眠,但您的应用会立即通过发送网络流量唤醒它。如果是这样,您可以处理WM_POWERBROADCAST条消息,尤其是PBT_APMQUERYSUSPENDPBT_APMRESUMEAUTOMATIC。暂停时停止网络流量,并在Resume上重新启动它。