2011-05-02 5 views
2

.NET Framework에서 내 랩톱의 HDMI 포트에 HDMI 케이블을 연결할 때 이벤트를 감지하려고합니다. 케이블이 연결되면 Windows는 명백한 "새 하드웨어"사운드를 만들고 화면 해상도를 더 적합한 것으로 변경하기 때문에 이벤트가 발생한다는 것을 알고 있습니다..NET에서 HDMI 케이블 이벤트를 감지합니까?

내 오디오 장치를 손으로 HDMI 출력으로 변경하는 것에 지쳐 가고있어 작은 앱을 쓰고 싶다.

답변

3

이 기사의 Code Project은 .NET에서 하드웨어를 확인하고 변경 사항을 수신하는 방법에 대한 좋은 정보를 제공합니다.

2

WM_DEVICECHANGE을 사용해 보셨습니까? 나는 직접 테스트 할 방법이 없다.

Winforms를 사용하는 경우 Control.WndProc 메서드를 재정 의하여 프레임 워크가 래핑하지 않는 Windows 메시지를 처리 ​​할 수 ​​있습니다.

2

여기 DisplaySettingsChanging 또는 DisplaySettingsChanged 이벤트에 대해 언급 한 사람이 없다는 것에 매우 놀랐습니다. HDMI 케이블을 연결하거나 분리 할 때 o/s가이를 감지하고 화면 번호를 다시 매 깁니다. 당신은 그 사건들을 잡을 수 있습니다.

코드의 예 조각은 다음과 같습니다

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args)   
     { 

      Microsoft.Win32.SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; 

      Microsoft.Win32.SystemEvents.DisplaySettingsChanging += SystemEvents_DisplaySettingsChanging; 

      Console.Read(); 
     } 

     static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) 
     { 
      Console.WriteLine("Display settings have been changed."); 
     } 

     static void SystemEvents_DisplaySettingsChanging(object sender, EventArgs e) 
     { 
      Console.WriteLine("Display settings are changing now..."); 
     } 

    } 
} 
관련 문제