MSKLC under Windows 10: 创建自定义键盘布局,支持中文 IME(输入法)和西班牙文组合输入
MSKLC under Windows 10: Create custom keyboard layout which supports IME (input method) for Chinese and combined input in Spanish
此问题最初由我发布在 Microsoft 社区中:
总而言之:我在 Windows10 中使用 Microsoft Keyboard Layout Creator 1.4 创建了一个自定义键盘布局,它可以工作,但只是部分工作。它不能:
将两次击键合二为一以键入 "combined letter",例如,“¨”+"u" = “ü”。应该没有中文但是我想实现这个
输入中文拼音和中文标点符号。在 MS 拼音输入法中,我可以按 shift 键在中文拼音模式和英文模式之间切换。在拼音模式下,我可以将字母转换为拼音,从而得到汉字,但我的布局没有这个。而且,如果我在拼音模式下按 Microsoft Pinyin 中的“,”,它应该给我“,”(全长逗号),但这种布局无法做到这一点。
我正在考虑两种解决方法:
将微软拼音的键盘布局替换为我的布局(将微软拼音的英文部分替换为我的布局)
将MS拼音的拼音部分复制到我的布局中。
那么,我该如何解决这个问题?
我已经解决了。
对于第一个问题,你必须定义一些"dead keys combinations"。详细解释在这里:
http://www.angelfire.com/planet/linguisticsisfun/Creating_a_Keyboard_Using_MSKLC.pdf
对于第二个问题,基本上你是这样做的:
创建您的键盘布局。
使用文本编辑器编辑 .klc
文件,以更改 VK 代码映射。这是因为 Microsoft Windows 中的大多数应用程序,当您按下热键时,检测到发送到 OS 的 VK 代码,而不是 "key chars"(您在文本处理中键入时输出的字符软件)。因此,为了使键盘布局的键字符与其 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
,即"keyboard layout for US keyboard"。这也适用于 MS 拼音。将此值更改为您复制的 DLL 名称,以便下次 OS 启动时它将加载您的 DLL。
重启。
结果:
- 我可以使用自定义键盘布局使用 Microsoft 拼音输入英文和中文拼音,我可以使用
,
和 .
浏览 next/previous 页面。
- 使用此键盘布局,我可以键入西班牙语特殊字符,例如
ï
、á
、ç
、ñ
和 €
,而无需切换到西班牙语键盘.
- 任何软件中的热键都按预期工作,因为现在 VK 代码与印在键上的字母相匹配。
此问题最初由我发布在 Microsoft 社区中:
总而言之:我在 Windows10 中使用 Microsoft Keyboard Layout Creator 1.4 创建了一个自定义键盘布局,它可以工作,但只是部分工作。它不能:
将两次击键合二为一以键入 "combined letter",例如,“¨”+"u" = “ü”。应该没有中文但是我想实现这个
输入中文拼音和中文标点符号。在 MS 拼音输入法中,我可以按 shift 键在中文拼音模式和英文模式之间切换。在拼音模式下,我可以将字母转换为拼音,从而得到汉字,但我的布局没有这个。而且,如果我在拼音模式下按 Microsoft Pinyin 中的“,”,它应该给我“,”(全长逗号),但这种布局无法做到这一点。
我正在考虑两种解决方法:
将微软拼音的键盘布局替换为我的布局(将微软拼音的英文部分替换为我的布局)
将MS拼音的拼音部分复制到我的布局中。
那么,我该如何解决这个问题?
我已经解决了。
对于第一个问题,你必须定义一些"dead keys combinations"。详细解释在这里:
http://www.angelfire.com/planet/linguisticsisfun/Creating_a_Keyboard_Using_MSKLC.pdf
对于第二个问题,基本上你是这样做的:
创建您的键盘布局。
使用文本编辑器编辑
.klc
文件,以更改 VK 代码映射。这是因为 Microsoft Windows 中的大多数应用程序,当您按下热键时,检测到发送到 OS 的 VK 代码,而不是 "key chars"(您在文本处理中键入时输出的字符软件)。因此,为了使键盘布局的键字符与其 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
,即"keyboard layout for US keyboard"。这也适用于 MS 拼音。将此值更改为您复制的 DLL 名称,以便下次 OS 启动时它将加载您的 DLL。重启。
结果:
- 我可以使用自定义键盘布局使用 Microsoft 拼音输入英文和中文拼音,我可以使用
,
和.
浏览 next/previous 页面。 - 使用此键盘布局,我可以键入西班牙语特殊字符,例如
ï
、á
、ç
、ñ
和€
,而无需切换到西班牙语键盘. - 任何软件中的热键都按预期工作,因为现在 VK 代码与印在键上的字母相匹配。