winapi - Opsporing af DisplayPort (vs. DVI?) på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil gerne afgøre, om en (aktuelt aktiv) skærm er tilsluttet via DisplayPort eller ej (jeg kan antage, at et display ikke er tilsluttet via DP, er en DVI-forbindelse.) Er der nogen Windows API til at få disse oplysninger?


Jeg kunne ikke se nogen oplysninger om, hvordan man nærmer sig dette på displayport.org, selv om Wikipedia nævnte, at jeg kunne læse nogle oplysninger fra EDID. Jeg har også fundet nogle kodefragmenter ved brug af WmiMonitorID System. Management interface fra C # (enten en. NET eller C ++ løsning ville være fint), men det ser ikke ud til at give denne detalje.


Løsninger, der kræver NVidia eller ATI-specifikke udvidelser, ville også være acceptable, forudsat at de arbejder med deres nuværende tilbud.

Bedste reference


Jeg synes at have fundet en løsning ved hjælp af WmiMonitorConnectionParams-klassen. Feltkortene VideoOutputTechnology til D3DKMDT\_VIDEO\_OUTPUT\_TECHNOLOGY enum. [3] [4]


Ved første test får jeg en D3DKMDT\_VOT\_DVI retur for et notesbogssystem og en D3DKMDT\_VOT\_DISPLAYPORT\_EXTERNAL fra et DP-tilsluttet display.


f.eks.


using System.Management;

...

[**1**]




Dette ser ud til at virke - men jeg er stadig interesseret i andre tilgange.