我必须制作一个简单的程序,向服务器报告监视器的状态(它是开/关还是只是未连接)。到目前为止,我正在使用我在另一个讨论中找到的这种方法,但它只是每次都返回 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 变量不同的东西,因为它已初始化并且从程序的开始到结束都保持不变(如果我没记错)。感谢阅读和帮助。