我有一台带双HDMI输出的计算机。当我将显示器连接到任一显示器时,我想检测出插入了哪个显示器。
它可以借助注册表,powershell或C#代码或任何其他东西。只要不是C ++。
我尝试了各种wmi方法。在注册表中搜索可以指定hdmi端口的任何内容。但是到目前为止什么也没发现。
这个stackoverflow答案(Detect/identify the port (HDMI, other) the monitor is connected to in Windows 7/8/10 Win32 C++)是我发现的唯一关于我的需要的答案,但是我无法处理c ++,所以从现在开始我就被卡住了。
谢谢大家
在powershell中尝试。
$objWMi = get-wmiobject -namespace root\WMI -computername localhost -Query "Select * from WmiMonitorConnectionParams"
foreach ($obj in $objWmi)
{
write-host "Active:" $obj.Active
write-host "InstanceName:" $obj.InstanceName
write-host "VideoOutputTechnology:" $obj.VideoOutputTechnology
write-host
write-host "########"
write-host
}
WmiMonitorConnectionParams类具有VideoOutputTechnology属性,该属性返回以下内容:
typedef enum _D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY {
D3DKMDT_VOT_UNINITIALIZED = -2,
D3DKMDT_VOT_OTHER = -1,
D3DKMDT_VOT_HD15 = 0,
D3DKMDT_VOT_SVIDEO = 1,
D3DKMDT_VOT_COMPOSITE_VIDEO = 2,
D3DKMDT_VOT_COMPONENT_VIDEO = 3,
D3DKMDT_VOT_DVI = 4,
D3DKMDT_VOT_HDMI = 5,
D3DKMDT_VOT_LVDS = 6,
D3DKMDT_VOT_D_JPN = 8,
D3DKMDT_VOT_SDI = 9,
D3DKMDT_VOT_DISPLAYPORT_EXTERNAL = 10,
D3DKMDT_VOT_DISPLAYPORT_EMBEDDED = 11,
D3DKMDT_VOT_UDI_EXTERNAL = 12,
D3DKMDT_VOT_UDI_EMBEDDED = 13,
D3DKMDT_VOT_SDTVDONGLE = 14,
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_M1)
D3DKMDT_VOT_MIRACAST = 15,
#endif
D3DKMDT_VOT_INTERNAL = 0x80000000,
D3DKMDT_VOT_SVIDEO_4PIN = D3DKMDT_VOT_SVIDEO,
D3DKMDT_VOT_SVIDEO_7PIN = D3DKMDT_VOT_SVIDEO,
D3DKMDT_VOT_RF = D3DKMDT_VOT_COMPOSITE_VIDEO,
D3DKMDT_VOT_RCA_3COMPONENT = D3DKMDT_VOT_COMPONENT_VIDEO,
D3DKMDT_VOT_BNC = D3DKMDT_VOT_COMPONENT_VIDEO
} D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY;