Я очень удивлен, что никто здесь не упомянул о событиях 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...");
}
}
}