2011-05-02 110 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..."); 
     } 

    } 
}