是否可以检测是否有使用C#连接的HDMI设备?

Eri*_*ood 10 c#

就像标题所说,我想知道是否可以确定是否使用C#连接了HDMI设备.

Sor*_*ell 6

我想出了powershell解决方案:

$HDMI_Monitors = 0;
$wmiobject = (get-wmiobject -namespace root\WMI -computername localhost -Query "Select * from WmiMonitorConnectionParams")
foreach ($letter in $wmiobject)
{
    if($letter["VideoOutputTechnology"] -eq 5) #HDMI cable have value of 5 
    {
        HDMI_Monitors += 1;
    }
}
Write-Host "Number of connected HDMI cables : $HDMI_Monitors"
Run Code Online (Sandbox Code Playgroud)

这将列出没有。连接的HDMI 电缆
它从VideoOutputTechnology抓取所有显示器并仅计算HDMI。HDMI 总是有 5 个值。 积分:此处更新:1 c# 代码:


$HDMI_Monitors = 0;
$wmiobject = (get-wmiobject -namespace root\WMI -computername localhost -Query "Select * from WmiMonitorConnectionParams")
foreach ($letter in $wmiobject)
{
    if($letter["VideoOutputTechnology"] -eq 5) #HDMI cable have value of 5 
    {
        HDMI_Monitors += 1;
    }
}
Write-Host "Number of connected HDMI cables : $HDMI_Monitors"
Run Code Online (Sandbox Code Playgroud)

原因:WmiMonitorConnectionParams数组返回外部显示器的数量及其信息,包括VideoOutputTechnologyInstanceNameActive。我们需要VideoOutputTechnology来检查 value 是否为 5,然后对其进行计数。D3DKMDT_VOT_HDMI=5积分:docs.microsoft.com & comment & wutils.com。.

更新:2 vbscript 代码:

int HDMI_Monitors = 0;
ManagementClass mClass = new ManagementClass(@"\\localhost\ROOT\WMI:WmiMonitorConnectionParams");
foreach (ManagementObject mObject in mClass.GetInstances())
{
    if (mObject["VideoOutputTechnology"].Equals(5)) //Because D3DKMDT_VOT_HDMI = 5
    {
        HDMI_Monitors += 1;
    }
}
    Console.WriteLine("Number of connected HDMI cables : " + HDMI_Monitors.ToString());
Run Code Online (Sandbox Code Playgroud)

与 c# 代码中解释的意识形态相同。仅用于Visual BasicvbscriptVBAvbs等。 积分:wutils.com

更新:3 C++ 代码

Dim HDMI_Monitors 
HDMI_Monitors = 0
For Each Instance In GetObject("WINMGMTS:\\localhost\ROOT\WMI").InstancesOf("WmiMonitorConnectionParams", 1) 
    If Instance.VideoOutputTechnology = 5 Then 
        HDMI_Monitors =  + 1
    End if
Next 
Wscript.Echo "No. of connected HDMI cables :" & HDMI_Monitors 
Run Code Online (Sandbox Code Playgroud)

积分:这里

  • “D3DKMDT_VOT_HDMI”的值为“5”。`-2147483648` 是 `D3DKMDT_VOT_INTERNAL`。您可以在“d3dkmdt.h”标头中查找值。 (2认同)