Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8.1处理物理键盘输入_Windows_Input_Keyboard - Fatal编程技术网

Windows 8.1处理物理键盘输入

Windows 8.1处理物理键盘输入,windows,input,keyboard,Windows,Input,Keyboard,我正在用c为Windows8.1开发一个通用应用程序 我试图捕捉键盘输入,从在线文献中可以看到KeyDown事件和KeyRoutedEventArgs以及Key属性。这适用于大多数关键字符,并返回VirtualKey枚举,如VirtualKey.A。但是,当使用诸如、;:>按下键时,键属性被设置为一个数字,如果该键与VirtualKey.Shift组合按下,则该数字的值相同,这似乎表明它不代表键上的字符,而仅代表物理键 恰巧,我使用的是意大利笔记本电脑键盘,它的布局当然与英国扩展键盘不同,因此分

我正在用c为Windows8.1开发一个通用应用程序

我试图捕捉键盘输入,从在线文献中可以看到KeyDown事件和KeyRoutedEventArgs以及Key属性。这适用于大多数关键字符,并返回VirtualKey枚举,如VirtualKey.A。但是,当使用诸如、;:>按下键时,键属性被设置为一个数字,如果该键与VirtualKey.Shift组合按下,则该数字的值相同,这似乎表明它不代表键上的字符,而仅代表物理键

恰巧,我使用的是意大利笔记本电脑键盘,它的布局当然与英国扩展键盘不同,因此分号的键值;在英国键盘上是186,表示未移位或底部字符,在意大利键盘上是188,表示移位或顶部字符。因此,在捕捉这些标点符号时,我感到很困惑

我曾经开发过WPF、Silverlight和.Net应用程序,我不记得即使在游戏循环中也很难处理物理键盘输入,因为我只使用了一个或多个键枚举和一个OEM值


无论键盘布局如何,当按下这些标点符号各自的键时,我如何捕获这些标点符号?

Hans Passant提供的答案:

此事件会暴露在物理键盘上键入的字符:

谢谢你,汉斯。。。正是我需要的