欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]一个设置默认输入法的小程序

[原创]一个设置默认输入法的小程序

用C++写了个设置默认输入法的小程序,E文不好,捣鼓几天才终于弄明白了一些了
首先是删除输入法
使用 UnloadKeyboardLayout 卸载Imm32框架的输入法,只作用于当前,重新启动后无效。ITfInputProcessorProfiles::EnableLanguageProfile启用或者禁用Tsf框架的输入法,重新启动后有效
设置默认输入法
使用SystemParametersInfo加SPI_SETDEFAULTINPUTLANG参数,只作用于当前,重新启动后无效。至于Tsf框架设置默认输入法理论上是ITfInputProcessorProfiles::SetDefaultLanguageProfile,可以经过实践,发现根本无效,不过我源码里面的那种方法可以
显示输入法属性配置
Imm32的使用ImmConfigureIME方法,Tsf的使用ITfFnConfigure::Show来显示属性对话框,具体怎么使用看我源码
如果要想添加、删除或者设置默认输入法重启了还能生效的话,需要修改注册表HKEY_CURRENT_USER\Keyboard Layout\Preload,其中值为1的重启之后总是被设置为默认输入法。
如果你想排序的话修改一下HKEY_CURRENT_USER\Software\Microsoft\CTF\SortOrder,这里包括了Imm32和Tsf框架的所有输入法排序
程序有点模仿了系统的那个,正好复习下属性表的使用

源码使用vs2010编译,程序没有保存到注册表,因此设置的默认输入法只作用于当前系统

上传的附件 QQ截图20130407084756.png
IMM.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功