检测.net中的HDMI电缆事件
本文关键字:事件 HDMI net 中的 检测 | 更新日期: 2023-09-27 17:54:05
我试图检测HDMI电缆从。net框架内插入笔记本电脑的HDMI端口时的事件。我知道有一个事件被触发了,因为当电缆插入时,Windows会发出明显的"新硬件"声音,并将屏幕分辨率更改为更合适的分辨率。
我有点厌倦了用手把我的音频设备转换成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...");
}
}
}