10

Windows 8 (および 8.1) で実行される C++ で開発されたサービスがあります。システムがコネクト スタンバイ状態になったことを知るにはどうすればよいですか?

これはサービスなのでウィンドウがありません。 PowerRegisterSuspendResumeNotificationを使用する必要がありますが、機能していないようです。このような通知を受け取る方法を知っている人はいますか?

4

4 に答える 4

6

Microsoft のテクニカル サポートに問い合わせました。これが彼らの答えです:

ConnectedStandby の開始/終了に関する直接的な通知はありませんが、ConnectedStandby は AOAC 対応システムでの画面オフと同義であるため、モニターのオン/オフ通知を使用できます (ただし、レガシー システムではなく、AOAC 機能を取得することで取得できます)。 CallNtPowerInformation を使用し、SYSTEM_POWER_CAPABILITIES 構造体の AoAc 値を調べる SystemPowerCapabilities)。

モニターのオン/オフ通知を取得するには、RegisterPowerSettingNotification を使用し、GUID_MONITOR_POWER_ON 電源設定 GUID を使用できます。

画面のオン/オフイベントをリッスンすることで、これを回避するしかないようです。

于 2014-03-19T14:36:04.730 に答える
2

これはコメントできないのが耐え難いです!!

CallNtPowerInformation(SystemPowerCapabilities, ...)戻りSYSTEM_POWER_CAPABILITIESます。メンバーがあります。BOOLEANメンバーAoAcが である場合FALSE、システムはコネクト スタンバイをサポートしていません。

Intelカスタムハードウェア(市場のマシンと同じ)で私にとってはうまくいきました。AoAc= Always On Always Connected、Intel の設定。

于 2014-02-20T17:12:44.217 に答える
0

コメントすることはできませんでしたが、サプライズで回答を提供することが許可されています。これは明確な答えではありませんが、議論です。

の通知を受け取らずPBT_APMSUSPEND、コールバックPBT_APMRESUMESUSPENDPBT_APMRESUMEAUTOMATICますか?

http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/26629db2-6d33-427c-a767-8c857d775079/windows-8-connected-standby-and-aoac?forum=wdkを通過した後

どうやら、アプリケーションは S3 モードと CS モード (別名 AOAC、常時オン、常時接続) を区別する必要はありません。ただし、CS でネットワーク アクティビティが許可されているかどうかは不明です。

于 2014-02-17T04:59:56.310 に答える