【发布时间】:2017-03-17 17:32:35
【问题描述】:
德语键盘有一个名为“Alt Gr”的键。好像windows把它当作按alt+ctrl来对待。
但我必须找出(在 c# 中)用户是否同时按下了左 ctrl 键。
有没有办法区分
- 用户按下:“Alt Gr”
- 用户同时按下“Alt Gr”和“左 ctrl”
System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key.Key.LeftCtrl) 在这两种情况下都为真。
System.Windows.Input.Keyboard.IsKeyDown(System.Windows.Input.Key.Key.RightAlt) 在这两种情况下也是如此。
System.Windows.Input.Keyboard.Modifiers 在这两种情况下都返回“Alt | Control”。
【问题讨论】:
-
Alt Gr 是德语键盘上一个非常常用的键。用于书写“@”、“€”、“\”、“~”等几个字符
-
@NickA 不感兴趣,扫描码上的扩展位是否相同?
-
@NickA 扫描码上有一个扩展位,左右 alt 都是
0x38,但左边有0作为扩展位,右边有0xE0,这就是你可以分辨的方式他们分开。有很多legacy code in scancodes! -
@NickA 酷我去看看
标签: c# keyboard controls modifier