スリープモードを中断/中断するWindowsデスクトッププログラム(Tweetz)があります。プログラムの性質は、つぶやきを監視し、つぶやきが到着するとUIを更新することです。私は、ネットワーク活動やUIの更新がスリープモードを妨げている/中断していると思われます。Windowsデスクトップアプリケーションがスリープを中断しないようにする
Windowsにアプリケーションのスリープを防ぐべきではないことを伝えるシステムAPIはありますか?
スリープモードを中断/中断するWindowsデスクトッププログラム(Tweetz)があります。プログラムの性質は、つぶやきを監視し、つぶやきが到着するとUIを更新することです。私は、ネットワーク活動やUIの更新がスリープモードを妨げている/中断していると思われます。Windowsデスクトップアプリケーションがスリープを中断しないようにする
Windowsにアプリケーションのスリープを防ぐべきではないことを伝えるシステムAPIはありますか?
私は次のアプローチを提案します。 WindowsサービスでTwitterモニターをコーディングし、表示する必要のあるメッセージをバッファします。これらのメッセージについては、システムがスリープモードになっているかどうか、またはデスクトップがロックされているかどうか(アプリケーションの仕様に従って)を確認してください。デスクトップアプリケーションとの通信メカニズムを設定し、必要に応じてメッセージを転送します。サービスはあなたのシステムがスリープ状態になるのを防ぐものではありません。SERVICE_ACCEPT_SESSIONCHANGEを使用してSetServiceStatus()でセッション状態の変化を監視できます。 OnSessionChangeイベントを使用することもできます。
おそらく、Windowsは正常にスリープしますが、ネットワークトラフィックを送信することによってアプリケーションがすぐに起動します。その場合は、WM_POWERBROADCAST
メッセージ、特にPBT_APMQUERYSUSPENDとPBT_APMRESUMEAUTOMATICを処理できます。サスペンド時にネットワークトラフィックを停止し、再開時に再起動します。
睡眠を1分間設定し、睡眠を待って、つぶやきが入り、システムが目を覚ます。また、ネットワークを切断すると、システムが眠っていることがわかりました。決定的なテストではありませんが、ネットワークアクティビティの問題を指摘しています。私はあなたが提案するようにします。少なくともそれは目を覚まさないでしょう。 –
あなたはこれを間違った方法で探しています。あなたのプログラムに何か問題があります。それが何であるかを試して修正してください。あなたが探している関数呼び出しが存在しません。必ずしも必要ではないからです。 –
* "スリープを防止してはならないことをWindowsに知らせるシステムAPIはありますか?" * - いいえ、逆のこともあります:[SetThreadExecutionState](https://msdn.microsoft.com/en-us/library) /windows/desktop/aa373208.aspx)。おそらく、アプリケーションはこれを*「機能」*として使用します。 UIの更新によってシステムがスリープ状態になるのを防ぐことはできませんが、ネットワークトラフィックが発生する可能性があります([システムスリープ基準](https://msdn.microsoft.com/en-us/library/windows/desktop/aa373233.aspx)参照)。 – IInspectable
これは、眠っている人を監視するネットワークトラフィックの可能性が高いです。キャッチのようです22。回避策はありますか? –