#c# #windows
#c# #Windows
Вопрос:
Я пытаюсь обнаружить событие, когда кабель HDMI подключен к порту HDMI моего ноутбука изнутри .NET framework. Я знаю, что происходит событие, потому что, когда кабель подключен, Windows издает очевидный звук «новое оборудование» и изменяет разрешение экрана на что-то более подходящее.
Я немного устал от ручного переключения моего аудиоустройства на выход HDMI, поэтому хочу написать небольшое приложение, которое сделает это за меня.
Комментарии:
1. эта статья о Code Project дает хорошее представление о том, как проверить ваше оборудование. Подключитесь к СЕТИ и прослушайте изменения.
Ответ №1:
Вы пробовали WM_DEVICECHANGE? У меня нет способа проверить это самостоятельно.
Если вы используете Winforms, вы можете переопределить Control.WndProc
метод для обработки сообщений Windows, которые платформа не переносит.
Ответ №2:
Я очень удивлен, что здесь никто не упомянул о событиях 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...");
}
}
}