2011-05-02 73 views
2

我試圖檢測事件時,從.NET框架中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..."); 
     } 

    } 
}