【问题标题】:How to assign keys on physical position at the keyboard on Windows?如何在 Windows 上的键盘上分配物理位置的键?
【发布时间】:2011-10-21 03:05:40
【问题描述】:

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

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

有什么图书馆或其他东西可以为我做这件事吗?

【问题讨论】:

  • 我真的认为你不走运,键盘发送的是按下的键码,而不是键的位置。例如,我的键盘在右上角有 `\`,但有些在左下角,但它们都发送相同的键码。
  • 这个问题的答案将更多地是 MS Windows 特定的而不是 C++ 特定的(该语言甚至没有键盘的概念),因此您可能需要更改问题标题。

标签: c++ windows


【解决方案1】:

This answer 表示您可以使用键盘“扫码”,这在所有键盘上都应该相同。所以看来,其实是有办法确定关键位置的。

即使不使用扫描码,您也可以为您支持的所有键盘布局实现映射表。因此,如果键盘布局是美国英语,则键将映射到命令 A,但在布局德语德语上,它将映射到命令 B,而其他一些命令将映射到命令 A。它可能不适用于所有键盘,但如果它适用于您的所有用户,这很重要。我明白您为什么要寻找现有的库来执行此操作,因为这将是大量工作。

【讨论】:

    【解决方案2】:

    这是无法做到的。键盘的布局不是电子形式的,操作系统可以查找。他们只是发送按键的代码,而不是按键所在的位置。我每天都在处理几个键盘,它们都被归类为具有德语布局,但有些键位于不同的位置。

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

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2011-12-17
      • 2021-06-08
      • 2011-03-28
      • 2014-06-05
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多