Windows 10 下的 MSKLC:创建自定义键盘布局,支持中文 IME(输入法)和西班牙文组合输入
Posted
技术标签:
【中文标题】Windows 10 下的 MSKLC:创建自定义键盘布局,支持中文 IME(输入法)和西班牙文组合输入【英文标题】:MSKLC under Windows 10: Create custom keyboard layout which supports IME (input method) for Chinese and combined input in Spanish 【发布时间】:2017-10-22 16:04:36 【问题描述】:这个问题最初是我在微软社区发布的:
https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/msklc-under-windows-10-create-custom-keyboard/8c5a7137-d575-4247-8ab3-b4dd1e5fb437?tm=1495318604424
总之:我在 Windows 10 中使用 Microsoft Keyboard Layout Creator 1.4 创建了一个自定义键盘布局,它可以正常工作,但只是部分工作。它不能:
将两个击键组合成一个以键入“组合字母”,例如“¨”+“u” = “ü”。中文不应该存在,但我想实现这个。
输入中文拼音和中文标点符号。在 MS 拼音输入法中,我可以按 shift 在中文拼音模式和英文模式之间切换。在拼音模式下,我可以将字母转换成拼音,从而得到汉字,但我的布局缺少这个。而且,如果我在拼音模式下按微软拼音中的“,”,它应该给我“,”(全长逗号),但这种布局无法做到这一点。
我正在考虑两种方法来解决这个问题:
将微软拼音的键盘布局替换为我的布局(用我的布局替换微软拼音的英文部分)
将MS拼音的拼音部分复制到我的布局中。
那么,我该如何解决呢?
【问题讨论】:
【参考方案1】:我已经解决了。
对于第一个问题,您必须定义一些“死键组合”。详细说明如下:
http://www.angelfire.com/planet/linguisticsisfun/Creating_a_Keyboard_Using_MSKLC.pdf
对于第二个问题,基本上你是这样做的:
创建您的键盘布局。
使用文本编辑器编辑 .klc
文件,以更改 VK 代码映射。这是因为 Microsoft Windows 中的大多数应用程序在您按下热键时会检测到发送到操作系统的 VK 代码,而不是“键字符”(您在文本处理软件中键入时输出的字符)。因此,为了使键盘布局的键字符与其 VK 代码匹配,您必须手动执行此操作。 MSKLC 不会为您改变这一点。这里有一些细节:
http://www.sensefulsolutions.com/2010/08/how-to-fix-keyboard-shortcuts-in-klc-eg.html
安装布局。
打开您的注册表编辑器,输入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
,在底部找到您的新键盘布局(我的名称类似于a0000xxxx
)。复制dll
文件名。那是包含您新创建的键盘布局信息的 DLL 文件。
返回注册表的父分支,搜索您要应用此布局的语言,如中文或西班牙语。您会发现几个名称相似的变体,但描述是不言自明的,可以帮助您区分它们。
简体中文使用KBDUS.dll
,意思是“美式键盘的键盘布局”。这也适用于 MS 拼音。将此值更改为您复制的 DLL 名称,以便下次操作系统启动时加载您的 DLL。
重启。
结果:
-
我可以使用 Microsoft Pinyin 和我的自定义键盘布局键入英文和中文拼音,我可以使用
,
和 .
导航下一页/上一页。
使用这种键盘布局,我可以在不切换到西班牙语键盘的情况下输入西班牙语特殊字符,例如 ï
、á
、ç
、ñ
和 €
。
任何软件中的热键都可以按预期工作,因为现在 VK 代码与键上打印的字母匹配。
【讨论】:
另外需要注意的是,dll
文件在机器之间不兼容,甚至在两台 Win 10 机器之间也不兼容。我认为这是由于每台计算机中的编译组件不同;需要在每台机器上编译打包.klc
文件生成dll
。
非常感谢您提供有关 VK 代码的详细信息!我花了大量时间调查我的系统,以找出为什么我的一些快捷方式无法与我的自定义布局一起使用,现在一切都变得有意义了 :)
实际上它们在所有情况下都没有意义。不同的应用程序有自己的规则映射热键,它们通常只基于 QWERTY,因为它真的很复杂。
死键有什么用?把你改成ü?为什么不使用 ALT GR?
@life-on-mars 抱歉,我想说“定义一个死键组合”。是的,在这个组合中,我使用 Alt-Gr + "¨" + 字母。以上是关于Windows 10 下的 MSKLC:创建自定义键盘布局,支持中文 IME(输入法)和西班牙文组合输入的主要内容,如果未能解决你的问题,请参考以下文章
Windows10下自定义桌面快捷方式图标--以Spyder为例
Windows10下自定义桌面快捷方式图标--以Spyder为例
Windows下的Jupyter Notebook 安装与自定义启动