如何知道插入了哪个 HDMI 端口?

Posted

技术标签:

【中文标题】如何知道插入了哪个 HDMI 端口?【英文标题】:How can I know which HDMI port is plugged in? 【发布时间】:2020-02-18 21:59:14 【问题描述】:

我有一台带双 HDMI 输出的电脑。当我将显示器连接到其中一个时,我想检测哪个插入了。

它可以借助注册表、powershell 或 C# 代码,或任何东西。只要不是 C++。

我尝试了各种 wmi 方法。在注册表中搜索任何可以指定 hdmi 端口的内容。但是目前什么都没找到。

这个 *** 答案 (Detect/identify the port (HDMI, other) the monitor is connected to in Windows 7/8/10 Win32 C++) 是我找到的唯一一个关于我需要的答案,但我无法处理 c++,所以从现在开始我被卡住了。

谢谢大家

【问题讨论】:

然后使用 P/Invoke。 嗯,我不确定这是否可行,但是要在 PowerShell 中使用该 WMI 类,您应该能够执行 get-ciminstance -namespace root/wmi -classname WmiMonitorConnectionParams 我认为只会告诉您您使用的是 HDMI 端口,而不是哪个 HDMI 端口。也许运行它,切换端口,然后再次运行它以查看有什么变化——我的机器在这里只有一个 HDMI 端口。 @Mark 已经尝试过了,没有弹出任何可以识别特定端口的信息。 【参考方案1】:

在 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;

【讨论】:

以上是关于如何知道插入了哪个 HDMI 端口?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不生根的情况下禁用android设备的hdmi端口?

检测安卓设备中的HDMI端口

如何知道哪个设备连接在哪个 /dev/ttyUSB 端口

boost-asio 是如何知道服务器在哪个端口上运行的?

text 如何知道哪个程序正在侦听给定端口?

sh 启用和禁用Raspberry Pi上的HDMI端口:`rpi-hdmi on`打开,`rpi-hdmi off`关闭。 X正确地重新初始化了