我需要检查显示器/显示器的电源(是开启还是关闭?)。
我已尝试使用WMI,使用Win32_DesktopMonitor并检查“可用性”,但返回的值始终为3(已启动),即使显示器已物理关闭。
现在,看看StackOverflow上的一些线程,我想要遵循一个方向,它是使用IMSVidDevice接口,但我不知道如何使用它。
我有这个链接http://msdn.microsoft.com/en-us/library/windows/desktop/dd694527(v=vs.85).aspx开始。
它讨论了使用segment.h和segment.idl。还提到了msvidctl.h。
我找到了一个MS Video Control 1.0类型库,它似乎是我正在寻找的(它已经定义了一个IMSVidDevice接口),但我无法弄清楚如何使用这个库。
var devices = new MSVidCtlLib.MSVidOutputDevices();
Console.WriteLine("Found {0} devices", devices.Count);
foreach (MSVidCtlLib.IMSVidOutputDevice dev in devices)
{
Console.WriteLine("{0}: {1} - {2}", dev.Name, dev.Status, dev.Power);
}
但devices.count始终为零。我的开发盒上有两个显示器。
我错过了什么?