是否可以使用c#检测用户监视器是否已打开?
SP
答案 0 :(得分:18)
WMI可能会有所帮助。
在Vista +中,有WmiMonitorBasicDisplayParams类,其中“Active”属性会告诉您显示是否处于活动状态。
这是一个适合我的例子:
using System.Management;
// ...
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"
var active = (Boolean)wmiObj["Active"];
}
}
答案 1 :(得分:4)
所有Active属性都会告诉您Windows是否正在使用显示器。即使显示屏关闭,DVI / HDMI也会报告连接。简而言之,没有其他方法可以检查除自制之外的东西 - 例如连接光传感器或网络摄像头并将其指向显示器的电源指示灯:)
答案 2 :(得分:-4)
无法执行此操作:无法检查显示器是否已开启。您可以检查是否启用了辅助监视器:使用System.Windows.Forms.Screen.AllScreens