欢迎来到天天文库
浏览记录
ID:56880664
大小:386.00 KB
页数:17页
时间:2020-07-19
《常用AP函数参数5.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、常用API函数参数5ImmIsIME 函数功能: 判断指定的句柄是否为IME; 函数原型: BOOLImmIsIME(HKLhKL); 参数hKL: 待检查的键盘布局句柄; 返回值: 函数调用成功返回1,失败返回0. 速查信息: WindowsNT:要求4.0或更高版本 Windows:要求Windows95或更高. WindowsCE:不支持. Header:声明在imm.h. ImportLibrary:imm32.lib.WindowsXP没有自带五笔型输入法,这对五笔型用户而言无疑是个大大的遗憾。网上的五笔型输入法虽然种类很
2、多,也不乏优秀的版本,但一方面有些版本是共享软件需要注册,另一方面也许很多五笔型输入法的老用户最习惯用的还是老牌的“王码五笔型输入法86/98版”。 微软的OfficeXP软件中包含了这个老牌的五笔型输入法,但如果用户并不使用OfficeXP中的任何组件,仅仅是为了使用“王码五笔型输入法”而运行OfficeXP安装程序,就显的有些小题大做了,更不用说是某些零时在外面用公用电脑而又想用五笔型输入法的情况。于是网上出现了很多简化的安装方法,大体上可以分为三个步骤: 拷贝输入法文件(从Of还是9x/ME。示例代码ficeXP光盘中或已经安装了“王码五笔型输入法”
3、的电脑中提取) 增加注册表项 重启后通过控制面板添加输入法 整个过程中拷贝输入法文件和增加注册表项可以用批处理和导入注册表文件来简化操作,但必须重启计算机才能在控制面板里添加输入法,这同样让使用者觉得比较烦琐。那么作为一个编程爱好者能不能通过写个小程序来实现在不重新启动计算机的情况下全自动的安装“王码五笔型输入法”呢(也就是即装即用)?答案是肯定的!因为微软的OfficeXP安装程序做到了,这就表示微软肯定留有一个专门用来安装输入法的接口,一般来说应该是一系列API函数。 经过一番摸索,笔者在MSDN里找到了这个可以用来安装输入法的API:ImmIns
4、tallIME()。Ok,现在我们就开始利用这个API来实现自己的“王码五笔型输入法”全自动安装程序。 一、准备素材 我们先试着从OfficeXP光盘中提取“王码五笔型输入法”的输入法文件。通过Windows的查找功能在OfficeXP的第一张安装盘中查找与“WINWB”相关的文件,在OFFICE1.CAB中找到了一下14个文件:WINWB86.CHM.*、WINWB86.CNT.*、WINWB86.HLP.*、WINWB86A.IME.*、WINWB86A.MB.*、WINWB86W.IME.*、WINWB86W.MB.*、WINWB98.CHM.*、W
5、INWB98.CNT.*、WINWB98.HLP.*、WINWB98A.IME.*、WINWB98A.MB.*、WINWB98W.IME.*、WINWB98W.MB.*,其中*是很长的一串由字母、数字和下滑线组成的序列(个人认为应该是微软为了校验文件内容的正确性而加上的内容为该文件效验码的后缀吧)。去掉这个长长的后缀,可以看到5种类型的文件。很明显,*.CHM、*.CNT和*.HLP是五笔型输入法的帮助文件,*.MB是码表文件,而*.IME是主要的输入法文件。其中*.IME和*.MB有文件名部分以A结尾和以W结尾两个版本,经过笔者试验证实了它们分别是ANSI和
6、UNICODE两种版本的输入法文件。文件名部分以A结尾的文件适用于Windows9x,以W结尾的文件适用于NT系列Windows系统。 提取了输入法文件后必须让安装程序针对不同版本的操作系统将它们拷贝到正确的目录,以便调用API来进行输入法安装。笔者分别在安装了OfficeXP中自带的“王码五笔型输入法”的Windows98SE和WindowsXP操作系统中查找以上文件,发现帮助文件都存放在WINDOWSHELP目录中(这里假设Windows系统都安装在WINDOWS目录)。而主要的输入法文件(*.IME)和码表文件(*.MB)在Windows9x下存放于W
7、INDOWSSYSTEM目录中,在NT系列Windows系统中存放于WINDOWSSYSTEM32目录中。 二、相关API函数 素材的准备工作已经完成,现在我们来看一下代码编写过程中需要用到的4个主要的API函数。 2.1GetVersion 函数原型: DWORDGetVersion(VOID); 该函数返回与当前使用的Windows系统版本有关的信息。可以通过判断返回值最高位是否为1来判断当前是用的系统是NT/2000/XP还是9x/ME。示例代码: if(GetVersion()<0x80000000) //NT/2000/XP els
8、e //9x/ME 2.2Copy
此文档下载收益归作者所有