首页
社区
课程
招聘
[原创]一个设置默认输入法的小程序
发表于: 2013-4-7 08:52 14074

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

2013-4-7 08:52
14074
用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编译,程序没有保存到注册表,因此设置的默认输入法只作用于当前系统

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 778
活跃值: (208)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
2
在这里我想喷一下360的默认输入法设置工具,貌似设置Tsf框架输入法的时候不行吧
上传的附件:
2013-4-7 09:18
0
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
3
可以,不错!。。。
2013-4-7 09:46
0
雪    币: 93908
活跃值: (200199)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
Thanks for share.
2013-4-7 11:38
0
雪    币: 190
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
感谢了,源码什么的最有爱了
2013-4-7 12:57
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不错,以前用注册表作过,调整输入法顺序的。
2013-4-7 20:50
0
雪    币: 55
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有点兴趣.可以学习学习.自己琢磨点东西.
2013-4-8 13:26
0
雪    币: 141
活跃值: (318)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个可以看看
2013-4-8 23:21
0
雪    币: 298
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
见码就收,谢谢分享。
2013-4-9 14:51
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢分享。thank you.
2013-4-10 08:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
有源码果断收之 谢谢楼主
2013-4-12 13:14
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢楼主分享...
2013-4-12 22:40
0
雪    币: 0
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
请问:为什么输入法设置后,不能立即生效?还是前一次的输入法在工作。比如,我先打开记事本程序,然后设置一种新的输入法,但是没有生效。当记事本退出后,再次打开,才会生效.
2022-5-16 18:31
0
游客
登录 | 注册 方可回帖
返回
//