用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编译,程序没有保存到注册表,因此设置的默认输入法只作用于当前系统
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课