在 windows 应用程序中获取 HDMI 连接的事件处理程序
EventHandler to get HDMI connectivity in windows application
我正在寻找事件处理程序,以便在使用 c#/WPF 连接或断开 HDMI 时获取信息,例如如何使用 myNetworkAvailabilityChangeHandler 检测互联网何时断开或连接。
对此没有直接答案,但您可以使用 SystemEvents 来实现。
C# 代码:
main()
{
SystemEvents.DisplaySettingsChanged += new
EventHandler(SystemEvents_DisplaySettingsChanged);
}
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
int HDMI_Monitors = 0;
ManagementClass mClass = new ManagementClass(@"\localhost\ROOT\WMI:WmiMonitorConnectionParams");
foreach (ManagementObject mObject in mClass.GetInstances())
{
var ss = mObject["VideoOutputTechnology"];
if(ss.ToString().StartsWith("5"))
{
int HDMIport = Convert.ToInt32(ss);
if (HDMIport == 5)
{
HDMI_Monitors += 1;
}
}
}
}
您可以使用模型class来持续更新HDMI状态。
因此,每次您的 HDMI 连接或断开时,SystemEvents_DisplaySettingsChanged 都会触发,然后它会检查 HDMI 连接。
我正在寻找事件处理程序,以便在使用 c#/WPF 连接或断开 HDMI 时获取信息,例如如何使用 myNetworkAvailabilityChangeHandler 检测互联网何时断开或连接。
对此没有直接答案,但您可以使用 SystemEvents 来实现。
C# 代码:
main()
{
SystemEvents.DisplaySettingsChanged += new
EventHandler(SystemEvents_DisplaySettingsChanged);
}
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
int HDMI_Monitors = 0;
ManagementClass mClass = new ManagementClass(@"\localhost\ROOT\WMI:WmiMonitorConnectionParams");
foreach (ManagementObject mObject in mClass.GetInstances())
{
var ss = mObject["VideoOutputTechnology"];
if(ss.ToString().StartsWith("5"))
{
int HDMIport = Convert.ToInt32(ss);
if (HDMIport == 5)
{
HDMI_Monitors += 1;
}
}
}
}
您可以使用模型class来持续更新HDMI状态。 因此,每次您的 HDMI 连接或断开时,SystemEvents_DisplaySettingsChanged 都会触发,然后它会检查 HDMI 连接。