从.net托管应用程序检查监视器的电源状态

时间:2012-02-03 00:47:36

标签: c# windows winapi

我需要检查显示器/显示器的电源(是开启还是关闭?)。

我已尝试使用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始终为零。我的开发盒上有两个显示器。

我错过了什么?

0 个答案:

没有答案