文档详情

输入法的注册、安装和卸载.docx

桔****
实名认证
店铺
DOCX
144.05KB
约6页
文档ID:547110007
输入法的注册、安装和卸载.docx_第1页
1/6

输入法的注册安装和卸载注册输入法输入法的安装和普通应用程序有一个大的区别是,除了复制文件到安装目录、做一些必要的设置外,还需要向Windows系统注册这个输入法 我们前期一篇博文 TSF(Text Service Framework)简介中谈到,Windows有两种输入法的框架,IMM32和CTF下面分别说下两种情况的注册IMM32框架每个输入法要将自己注册为一个Keyboard Layout,具体来说做以下几件事: A.在注册表中HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layouts,创建一个新的Key,名字为xxxx0804 (低位表示语言,这里0804表示简体中文;高位表示设备句柄,0000表示默认的physical layout,如00000804表示简体中文英文键盘)譬如:[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layouts/E0200804] "IME File"="***.IME""Layout File"="kbdus.dll""Layout Text"="微软拼音输入法 2010""Layout Display Name"="@C://Program Files (x86)//***//***.DLL,-101" ***.IME为一个传统的动态链接库,只是扩展名不一样。

它必须export几个IMM框架必须要的函数接口 B. Enable这个输入法,譬如: [HKEY_CURRENT_USER/Keyboard Layout/Preload] "1"="00000804""2"="e0200804" 这里表示语言栏会显示两个keyboard layout:1为简体中文键盘,2为注册的某简体中文输入法 C.复制 IMSCxxx.ime到system32目录下 通过这三步,Windows就知道了这个输入法,并将其显示在语言栏中 CTF框架CTF框架下,一个输入法为一个TIP(Text Input Processor),其首先必须注册为一个COM组件通过ITfInputProcessorProfileMgr::RegisterProfile()接口注册TIP的CLSID和ProfileID这等价于下面写注册表的方式: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} Description=SZ: IconFile=SZ: IconIndex=DWORD: Enable=DWORD:[0|1] SubstituteLayout=SZ: CLSID 代表TIP,同时指容纳TIP的COM的GUID,ProfileID是指具体某个输入法的ID,一个COM可以包含多个输入法ProfileID。

譬如,微软拼音2010就在一个COM中实现了两个输入法:新体验和简捷,以满足不同用户需求 或者使用老接口来注册 1) 通过ITfInputProcessorProfiles::Register()注册CLSID 2) 通过ITfInputProcessorProfiles::AddLanguageProfile()添加language profile -可以添加不同语言的多种的profile 这等价于: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} Description=SZ: IconFile=SZ: IconIndex=DWORD: 3) 通过ITfInputProcesorProfiles::EnableLanguageProfileByDefault()来缺省Enable或disable 某profile. - 这个设置是系统级别,即应用于不同系统中的不同用户. - 如果没有调用此接口,默认是enable - 可以在HKCU中覆盖此设置 这等价于: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} Enable=DWORD:[0|1] 4) 设置profile的名字:调用ITfInputProcessorProfilesEx::SetLanguageProfileDisplayName(). - 可选步骤. 注意设置不同语言的名字。

这等价于: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} Display Description=SZ: 5) 设置可替换的keyboard layout (仅使用键盘TIP) - ITfInputProcessorProfiles::SubstituteKeyboardLayout() 为profile设置可替换的hkl 当焦点从Cicero aware 的控件切换到non-Cicero aware的控件上时,这个hkl会被用到这等价于: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} SubstituteLayout=SZ: 可选 – 在控制面板输入法对话框中隐藏profile HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/CTF/TIP/{CLSID}/LanguageProfile/[langid]/{guidProfile} HiddenInSettingUI=DWORD:[0|1] 如果此键值不存在,则默认为0,即此profile显示在控制面板输入法对话框中 顺便提一下,在当前用户下设置默认输入法: ITfInputProcessorProfile::SetDefaultLanguageProfile() 这只影响到新创建线程,而不会对已经运行的线程产生影响。

当然,重启后,在所有线程都会生效次接口只会影响当前用户,对系统中其他用户无影响 这等价于: HKEY_CURRENT_USER/SOFTWARE/Microsoft/CTF/Assembly/[langid]/{TIP’sCategory} Default=SZ:TIP’sCLSID KayboardLayout=DWORD: Profile=SZ:TIP’s guidProfile 从上面可以看到,无论哪种框架,都需要向注册表HKEY_LOCAL_MACHINE路径写入输入法信息,另外不同输入法也可能注册自己的组件到操作系统中,所以安装时: 第一,需要administrator权限;要求所用户必须属于administrators组的成员; 第二,如果系统中安装了某些安全软件,其可能阻挡写入注册表系统路径(如HKEY_LOCAL_MACHINE),这时候安装就不能成功要么暂时关闭其功能,要么在其提示是选择“允许写入”,要么卸载它后再安装.安装和卸载微软拼音输入法2010从论坛和其他用户反馈上,在安装和卸载微软拼音输入法2010时有些用户会遇到问题如果安装时解决上面两点还存在问题(下面所说仅针对从微软拼音主页 下载的微软拼音输入法2010,不适用于Office 2010中文版中包含的微软拼音输入法),那按以下步骤确定问题: 1. 如果安装失败,要确认系统中是否残留以前安装过的。

下载一个myuninstaller, 这是个绿色软件,直接运行: 2. 上面显示的是x86系统中的软件列表,如果存在红线中两个安装包中任意一个,全部卸载, Microsoft Office IME (Chinese (Simplified)) 2010Microsoft Office IMESS (Chinese (Simplified)) 2010 3. 安装原始安装包 如果还失败,可以试试某用户的方法 NT/CurrentVersion/Image File Execution Options,但某些系统中不能写入,可能的原因是公司的域策略或者杀毒软件保护了此路径,因为这个路径非常特殊,恶意软件经常利用此路径而自动启动恶意进程 微软拼音之所以写这个目录,是因为启用了SEHOP(Structured Exception Handler Overwrite Protection),参见。

下载提示
相似文档
正为您匹配相似的精品文档