2011-11-22 3 views
2

DisplayPort를 통해 (현재 활성 상태 인) 디스플레이가 연결되었는지 여부를 확인하고 싶습니다. (제 목적으로 DP를 통해 연결되지 않은 디스플레이가 DVI 연결이라고 가정 할 수 있습니다.)이 정보를 얻기위한 Windows API가 있습니까 ?Windows에서 DisplayPort 감지 (대 DVI?)?

위키 백과에서 EDID에서 정보를 읽을 수 있다고 언급 했는데도 displayport.org에서이 접근 방법에 대한 정보를 찾지 못했습니다. WmiMonitorID System.Management 인터페이스를 C# (.NET 또는 C++ 솔루션)에서 사용하여 코드 조각을 찾았지만 자세한 내용은 제공하지 않습니다.

NVidia 또는 ATI 특정 확장을 필요로하는 솔루션도 현재 제공되는 제품에서 작동하는 경우 허용됩니다.

답변

0

나는 WmiMonitorConnectionParams 클래스를 사용하여 해결책을 찾은 것 같습니다. VideoOutputTechnology 필드는 D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY enum에 매핑됩니다.

처음 테스트 할 때 노트북 시스템에서는 D3DKMDT_VOT_DVI 리턴을, DP 연결 디스플레이에서는 D3DKMDT_VOT_DISPLAYPORT_EXTERNAL을 얻습니다.

using System.Management;

...

  ManagementObjectSearcher searcher = 
       new ManagementObjectSearcher("root\\WMI", 
       "SELECT * FROM WmiMonitorConnectionParams"); 

      foreach (ManagementObject queryObj in searcher.Get()) 
      { 
       Console.WriteLine("WmiMonitorConnectionParams:"); 
       foreach (PropertyData pd in queryObj.Properties) 
       { 
        string name = pd.Name; 
        string val = pd.Value.ToString(); 
        Console.WriteLine("{0} = {1}", name, val); 
       } 
      } 

이것은 작동하는 것 같다 -하지만, 난 여전히 다른 접근법에 관심이있을 것입니다.

관련 문제