2010-09-21 22 views
0

至少有3种不同的键盘布局使用我制作的程序,我不在乎他们按哪个键,更重要的是键被按下的地方。如何在Windows上的键盘上的物理位置上指定键?

我不能只是要求用户按100个不同的按键/组合,这将花费太多的时间,并对用户非常困惑。

有没有一些图书馆或可以为我做这件事?

+0

我真的认为你运气不好,键盘发送按键代码,而不是键的位置。例如,我的键盘在右上角有'\\',但有些在左下角,但它们都发送相同的键码。 – Blindy 2010-09-21 16:36:43

+1

对于这个问题的答案将比C++特定的MS Windows更具体(该语言甚至没有键盘的概念),因此您可能需要更改问题标题。 – 2010-09-21 16:39:07

回答

0

这是无法完成的。键盘不会以电子形式显示其布局,可能会被操作系统查找。他们只是发送按键的代码,而不是密钥所在的位置。我每天都在处理几个键盘,这些键盘都被列为德国版式,但其中一些键位在不同的地方。

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

1

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

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

相关问题