Как я могу узнать, какой порт HDMI подключен? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть компьютер с двойным выходом HDMI. Я хотел бы определить, какой из них подключен, когда я подключаю монитор к одному из них.

Это может быть либо с помощью реестра, PowerShell или кода C #, либо чего угодно. Пока это не C ++.

Я пробовал различные методы wmi. Поискал в реестре все, что указывало бы порт hdmi. Но пока ничего не нашел.

Этот ответ на стекопоток ( Обнаружение / идентификация порта (HDMI, другой), к которому подключен монитор в Windows 7/8/10, Win32 C ++ ) - единственныйодин я нашел относительно моей потребности, но я не могу справиться с c ++, так что теперь я застрял.

Спасибо всем

1 Ответ

0 голосов
/ 24 октября 2019

Попробуйте это в 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;
...