如何在Windows上键盘上的物理位置分配键?

时间:2010-09-21 16:32:40

标签: c++ windows

至少有3种不同的键盘布局使用我制作的程序,我不在乎他们按哪个键,更重要的是按键被按下的位置。

我不能要求用户按下100个不同的键/组合,这将花费太多时间并且对用户来说非常混乱。

是否有一些图书馆或某些东西能为我做到这一点?

2 个答案:

答案 0 :(得分:1)

This answer表示您可以使用键盘“扫描码”,它应该在所有键盘上都相同。所以看来实际上有一种确定关键位置的方法。

即使不使用扫描代码,您也可以为所支持的所有键盘布局实现映射表。因此,如果键盘布局是美国英语,键将映射到命令A,但在布局德语德语时,它将映射到命令B,而其他一些命令将映射到命令A.它可能不适用于所有键盘,但如果它适用于所有重要的用户。我可以看到你为什么要寻找一个现有的库来做这件事,因为这将是一项重要的工作。

答案 1 :(得分:0)

这不可能。键盘没有以电子形式提供布局,可以通过操作系统查找。他们只是发送按下的键的代码,而不是密钥所在的位置。我每天都在制作几个键盘,这些键盘都被归类为具有德语布局,但其中一些键位于不同的位置。

找出特定键盘上特定键的物理位置的唯一方法是查看键上打印的内容。