Hi liubin,
>>不知道为什么我按下ALT+S的时候,SendMessage代码没有执行,电脑传出”叮”一声。。。
如果将Alt换成CTRL却可以,这是为什么?
据我所致,在Alt修饰符的情况下,e.Key返回Key.System,真正的密钥在e.SystemKey中。 您可以使用以下代码来始终获得正确的按键:
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
你可以尝试下面的代码来捕获ALT组合事件
private void HandleKeyDownEvent(object sender, KeyEventArgs e)
{
if (e.Key == Key.S && (Keyboard.Modifiers & (ModifierKeys.Control)) == (ModifierKeys.Control))
{
e.Handled = true;
MessageBox.Show("Control + s trapped");
}
if ((Keyboard.Modifiers & (ModifierKeys.Alt)) == (ModifierKeys.Alt))
{
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
if(key==Key.S)
{
e.Handled = true;
MessageBox.Show("Alt + s trapped");
}
}
}
Best Regards,
Yohann Lu
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com.