Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET中检测HDMI电缆事件?_C#_Windows - Fatal编程技术网

C# 在.NET中检测HDMI电缆事件?

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

我试图在.NET framework中将HDMI电缆插入笔记本电脑的HDMI端口时检测事件。我知道会触发一个事件,因为当电缆插入时,Windows会发出明显的“新硬件”声音,并将屏幕分辨率更改为更合适的分辨率

我有点厌倦了手动将音频设备更改为HDMI输出,所以想编写一个小应用程序来为我完成此操作。

您尝试过吗?我自己没有办法去测试它


如果您使用的是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检查硬件和侦听更改的详细信息。