如何在 Windows 中搜索显示特定 Unicode 字符的键盘布局?

如何在 Windows 中搜索显示特定 Unicode 字符的键盘布局?

在 Linux 上,我可以使用 grepxkb/symbols来找出哪个键盘(如果有的话)使用特定字符。例如,我可以找到所有可以产生 é 的键盘。

有没有办法在 Windows 10 上执行相同操作?或者,有没有办法在 Windows 10 上使用 Linux 键盘定义?

如果我对 Keyman 键盘定义的相同内容感到好奇,那么这应该是一个单独的问题吗?

问题背景:我支持那些刚开始用自己的语言打字,但没有计算机背景的国际用户。他们经常使用“标准”键盘上没有的字符。对于重音字母,这相当简单,尽管在 Windows 上比在 Linux 上更复杂。对于其他 unicode 字符,找到能够创建特定字符的键盘可能非常困难,除非对其进行 alt 编码(而且现在许多笔记本电脑都没有数字键盘)。

我希望能够搜索可用的键盘映射来找到一个引用我正在寻找的字符的键盘映射,看看它是否合适。

到目前为止我发现最接近的东西是这里的国家键盘比较器:https://www.farah.cl/Keyboardery/Interactive-Comparator-of-Different-National-Layouts/?left=enUS&right=random

答案1

抱歉,@Hackoo,但这并没有回答问题。虽然这可以让我改变键盘,它只在 Windows PE 上下文中执行此操作,这是一个单独的启动(即不是我的 Windows 环境),它实际上并没有告诉我各种键盘输入了什么字符。

虽然@harrymc 是正确的,并且没有列出键盘及其字符的“存储库”,但我确实找到了一个模糊指向答案的方向。

这个问题StackOverflow 上向我指出了Microsoft 键盘布局创建器。虽然有点繁琐,但 Windows 10 中可用的键盘可以单独加载到 MKLC 中并导出为.klc包含键盘纯文本描述的文件。不幸的是,正如该线程的进一步评论中指出的那样,MKLC 并不完全兼容所有 Microsoft 提供的键盘。

但是,该线程还揭示了列出键盘的信息(一种“存储库”)的位置。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts注册表中包含每个键盘的键,包括文件系统中的位置。当然,它们是 dll,不太容易解密。

“答案”包括使用的代码反射器它允许使用 .NET(我必须安装 .NET 3.5 才能使用 MKLC)通过编写 MKLC 脚本自动导出键盘。有一个免费的 Reflector 演示版,我下载了 DotNET SDK(因为编译 C# 的其他路径太长)以便编译应用程序。

我确实需要做一个小改动,来更新我机器上 MKLC 的位置(Program Files (x86)而不是Program Files),但它编译时没有任何问题,虽然(正如作者警告的那样)它很慢,但它完成了工作。

现在,我有了可以搜索的纯文本键盘描述(作为.klc文件)(我可能会将它们复制到我的 Linux 计算机,因为这样使用起来更方便)。现在,当我需要知道是否有支持特定字符的 Windows 10 内置键盘时,我就能得到答案。

非常感谢@andrewdotn,他提供了 C# 代码和 Reflector 链接,并感谢@WesternGun 提供了注册表项。另外,还要感谢@AuralArch,他指出由于 MKLC 的缺陷,某些键盘可能会导出不正确。如果我拥有的还不够,我可能会说服我的老板购买 KbdEdit 的许可证。

相关内容