我试图检测事件时,从.NET框架中HDMI电缆插入到我的笔记本电脑的HDMI端口。我知道有一个事件被触发,因为当电缆插入时,Windows会发出明显的“新硬件”声音,并将屏幕分辨率更改为更适合的内容。在.NET中检测HDMI电缆事件?
我已经厌倦了将手机的音频设备更改为HDMI输出,所以想编写一个小应用程序来为我做。
我试图检测事件时,从.NET框架中HDMI电缆插入到我的笔记本电脑的HDMI端口。我知道有一个事件被触发,因为当电缆插入时,Windows会发出明显的“新硬件”声音,并将屏幕分辨率更改为更适合的内容。在.NET中检测HDMI电缆事件?
我已经厌倦了将手机的音频设备更改为HDMI输出,所以想编写一个小应用程序来为我做。
这篇关于Code Project的文章提供了一个关于如何从.NET检查硬件并监听更改的良好洞察。
你试过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...");
}
}
}