如何检查电脑显示器打开或closures在Windows 7中的任何工具或事件查看器

我需要检查我的电脑显示器是打开或closures在WIN7操作系统

MSDN电源管理文档解释说,您可以在显示器打开或关闭时收到通知。 基本上,你注册了电力广播消息,然后你会得到一个WM_POWERBROADCAST消息,每当有变化。 有几种不同的GUID用于监视显示状态,具体取决于您使用的Windows版本。

在你的程序开始时(在创建你的主窗口之后),你可以这样做:

 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;