2

win7 OSでPCモニターがオンまたはオフになっていることを確認する必要があります

4

1 に答える 1

0

MSDN の電源管理のドキュメントでは、モニターの電源がオンまたはオフになったときに通知を受け取ることができると説明されています。基本的に、電力ブロードキャスト メッセージに登録するとWM_POWERBROADCAST、変更があるたびにメッセージが表示されます。使用している Windows のバージョンに応じて、表示状態を監視するためのいくつかの異なる GUID があります。

プログラムの開始時に (メイン ウィンドウを作成した後)、次のようにします。

HPOWERNOTIFY hPower =
  RegisterPowerSettingNotification(hwndMain, GUID_SESSION_DISPLAY_STATUS, 0);

(対象とする Windows のバージョンに応じて、GUID の選択肢は他にもあります)。

次に、メイン ウィンドウの手順で次のようにします。

case WM_POWERBROADCAST:
  if (wParam == PBT_POWERSETTINGCHANGE) {
    const POWERBROADCAST_SETTING *pSetting =
      reinterpret_cast<const POWERBROADCAST_SETTING*>(lParam);
    if (pSetting->PowerSetting == GUID_SESSION_DISPLAY_STATUS) {
      assert(pSetting->DataLength >= sizeof(DWORD));
      DWORD data = *reinterpret_cast<const DWORD*>(&pSetting->Data);
      switch (data) {
        case 0: /* monitor is off */ break;
        case 1: /* monitor is on */ break;
        case 2: /* monitor is dimmed */ break;
        default:  /* ???? */ break;
      }
    }
  }
  break;

いつでも電源通知を気にしなくなった場合は、登録を解除できます。

UnregsisterPowerSettingNotification(hPower);
hPower = NULL;
于 2012-09-29T16:53:11.310 に答える