У меня есть приложение С#, которое отслеживает нажатия клавиш с помощью событий KeyDown и KeyPress. В частности, он отслеживает нажатие клавиши VolumeMute (с портативного устройства) для выполнения специальной обработки. Он отлично работает с одной проблемой: кажется, что Windows перехватывает нажатие клавиши VolumeMute и отключает звук системы (чего я не хочу). Я думаю, что Windows перехватывает нажатие клавиши до того, как оно будет обработано моим приложением, потому что даже когда я сообщаю, что нажатие клавиши было обработано (e.Handled = true), она все равно отключает звук системы. Кстати, тот же код отлично работает для других нажатий клавиш, которые я ловлю (например, Backspace и т. Д.).
Есть ли способ остановить Windows от отключения звука?
Система: WinXP SP3, клиентский профиль .Net 4, приложение Windows Forms
Фрагменты кода
bool keyHandled = false;
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (keyHandled)
{
e.Handled = true;
}
}
// =====================================
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
keyHandled = false;
switch (e.KeyCode)
{
case Keys.VolumeMute:
DoSpecialProcessing();
keyHandled = true;
break;
default:
break;
}
e.Handled = keyHandled;
}