检测.net中的HDMI电缆事件

本文关键字:事件 HDMI net 中的 检测 | 更新日期: 2023-09-27 17:54:05

我试图检测HDMI电缆从。net框架内插入笔记本电脑的HDMI端口时的事件。我知道有一个事件被触发了,因为当电缆插入时,Windows会发出明显的"新硬件"声音,并将屏幕分辨率更改为更合适的分辨率。

我有点厌倦了用手把我的音频设备转换成HDMI输出,所以我想写一个小应用程序来帮我做这件事。

检测.net中的HDMI电缆事件

您尝试过WM_DEVICECHANGE吗?我没有办法自己测试。

如果你使用的是Winforms,你可以覆盖Control.WndProc方法来处理框架没有包装的Windows消息

我很惊讶这里没有人提到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...");
        }
    }
}