我有通过 KeyDown 和 KeyPress 事件监视击键的 C# 应用程序。具体来说,它会监视 VolumeMute 击键(来自手持设备)以进行一些特殊处理。它可以很好地解决一个问题:Windows 似乎拦截了 VolumeMute 击键并使系统音量静音(我不想发生这种情况)。我认为 Windows 在我的应用程序处理按键之前会拦截按键,因为即使我发出按键已处理的信号(e.Handled = true),它仍然会静音系统音量。顺便说一句,相同的代码非常适用于我正在捕捉的其他击键(例如 Backspace 等)。
有没有办法阻止 Windows 执行此音量静音?
系统:WinXP SP3、.Net 4 客户端配置文件、Windows 窗体应用程序
代码片段
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;
}