4

我必须制作一个简单的程序,向服务器报告监视器的状态(它是开/关还是只是未连接)。到目前为止,我正在使用我在另一个讨论中找到的这种方法,但它只是每次都返回 true,即使我已经断开了我的显示器。

public static Boolean isMonitorActive() 
        {
            Boolean active = false;
            var query = "select * from WmiMonitorBasicDisplayParams";
            using (var wmiSearcher = new ManagementObjectSearcher("\\root\\wmi", query))
            {
                var results = wmiSearcher.Get();
                foreach (ManagementObject wmiObj in results)
                {
                    // get the "Active" property and cast to a boolean, which should 
                    // tell us if the display is active. I've interpreted this to mean "on"
                    active = (Boolean)wmiObj["Active"];
                    return active;
                }
            }
            return active;
        }

我必须每 2-3 分钟检查一次监视器的状态,所以我需要使用与 System 中的 MonitorCout 变量不同的东西,因为它已初始化并且从程序的开始到结束都保持不变(如果我没记错)。感谢阅读和帮助。

4

0 回答 0