·基于IME的输入法的安装、更新及卸载
·安装
了解了系统是怎样保存输入法的信息后,要安装一个输入法就是很简单的事情了,我们只要准备好一个输入法ime文件,把它放好在某个位置后,再手动往上一点里提到的注册表位置中添加必要的项后输入法安装就算完成了。不过看着为每个已安装输入法分配的那串8位标识字符串(即输入法专属的键盘布局标识),是否觉得以编程手段实现输入法安装还是有点烦人呢?其实系统有为我们提供更简单的输入法安装方法,这个就是ImmInstallIME函数:
函数名 |
ImmInstallIME |
功能 |
把输入法ime文件注册到系统中,让系统可以识别并调用该输入法,经此函数注册成功后,该输入法会直接出现在语言栏中(函数为我们在HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Keyboard Layouts和HKEY_CURRENT_USER\\Keyboard Layout\\Preload两处地方都创建了相关信息) |
函数原型 |
ANSI版本:HKL WINAPI ImmInstallIMEA(LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText) UNICODE版本:HKL WINAPI ImmInstallIMEW(LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText) |
参数 |
LPCSTR lpszIMEFileName:输入参数,传入输入法ime文件的文件名(如果传入的是带路径的文件名,则函数会把路径部分清除,仅提取出文件名部分,输入法文件也可采用其它扩展名)此文件名将作为输入法项中键名为“Ime File”的值 LPCSTR lpszLayoutText:输入参数,作为注册表输入法项中键名为“Layout Text”的值,该键的意义上面已有说明 |
返回值 |
HKL:返回的为键盘布局标识,也即注册表中表示该输入法项的8位16进制数(如“0x00060804”,可把HKL这个类型直接作为一个32位无符号数来看待),如果注册失败,则返回0 |
使用准备 |
使用此函数必须引用系统头文件imm.h,且在工程属性的链接器->输入->附加依赖项中要加入对“imm32.lib”文件的依赖 |
其它 |
ImmInstallIME为对两个版本函数的编译器级别调用封装,根据当前编程环境的选择(UNICODE/非UNICODE),会调用相应的版本 |
调用失败 |
这里只说明两种常见的调用失败可能:一种是调用本函数时未把要注册的输入法ime文件复制到系统system32(win2000及以上)/system(win9x/me)目录下,另一种是输入法ime文件本身存在问题,关于后一点,在后面[创建一个空壳输入法]部 |