不同语言之间的密钥转换

本文关键字:密钥 转换 之间 语言 | 更新日期: 2023-09-27 18:28:20

如何在不同语言之间获取键盘键?例如,一个键盘上的(A)键等于另一个键盘中的(某个字母)。我怎样才能拿到那把钥匙。

不同语言之间的密钥转换

您的问题并不完全清楚。当你说"另一个键盘"时,你指的是与QWERTY键盘不同的硬件吗?如果不同的硬件上有一个带有特定标签('a')的键,其位置与QWERTY键盘上带有相同标签('a])的键的位置不同(第三行最左边的旁边)。在这种情况下,我认为你的问题是指"不同键盘上第三行最左边的一个键是什么?"

如果是这个问题,那么可以通过查询窗口(如果有GetKeyboardLayout或.NET等效窗口的话)来确定"键盘布局"。您将返回一个输入区域设置id。可以使用此表将输入区域设置id转换为区域设置。

使用区域设置,您可以在此处查找键盘布局的示意图。从下拉列表中选择一个区域设置。

编辑12/29/15

要通过编程实现这一点:一种方法是对你感兴趣的键盘布局的图形图进行编码。键盘会生成"扫描码"。因此,在美国键盘布局中,扫描代码31对应于a键。通过这种方式,您可以为美国布局的所有可能的扫描代码建立一个表。对法裔加拿大人和法裔瑞士人也这样做。然后你可以将美国键盘布局上的A转换为扫描代码31,将其映射到其他键盘布局上。

这是基于这样一种假设,即键盘上的扫描代码保持不变,只是键上的标签发生了变化。我相信这个假设是有限度的。例如,如果你在谷歌上搜索"中文键盘"并查看图像,你会看到一些键盘的按键比传统的美式键盘(大约有100个按键)多得多。

然而,我建议的表格很可能已经在Windows中提供了。在输入堆栈的某个位置,Windows必须将扫描代码转换为字符。我建议在谷歌上搜索更多关于Windows键盘布局和处理"输入区域设置"的API的信息。