C# 在.NET中检测HDMI电缆事件?
我试图在.NET framework中将HDMI电缆插入笔记本电脑的HDMI端口时检测事件。我知道会触发一个事件,因为当电缆插入时,Windows会发出明显的“新硬件”声音,并将屏幕分辨率更改为更合适的分辨率 我有点厌倦了手动将音频设备更改为HDMI输出,所以想编写一个小应用程序来为我完成此操作。您尝试过吗?我自己没有办法去测试它C# 在.NET中检测HDMI电缆事件?,c#,windows,C#,Windows,我试图在.NET framework中将HDMI电缆插入笔记本电脑的HDMI端口时检测事件。我知道会触发一个事件,因为当电缆插入时,Windows会发出明显的“新硬件”声音,并将屏幕分辨率更改为更合适的分辨率 我有点厌倦了手动将音频设备更改为HDMI输出,所以想编写一个小应用程序来为我完成此操作。您尝试过吗?我自己没有办法去测试它 如果您使用的是Winforms,您可以重写Control.WndProc方法来处理框架未包装的Windows消息。我很惊讶这里没有人提到DisplaySettings
如果您使用的是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...");
}
}
}
关于的这篇文章提供了有关如何从.NET检查硬件和侦听更改的详细信息。