首页
社区
课程
招聘
输入法的问题
发表于: 2004-11-7 15:00 3931

输入法的问题

2004-11-7 15:00
3931
有个形码输入法,规则简单,非常好学。可惜公司好像关了。网站也关了。网上也下载不到。我好不容易弄到一个,还是软盘版的。这安装程序用lock98加密,只能在9x下安装使用。安装时,首先读软盘上的lyjmx.dat文件,确定所剩安装次数。然后,把setup.dat文件解开并把xx.ime,xx.mb.xx.hlp等七个文件复制到系统目录。最后在注册表中激活输入法。为了能在2000/xp下使用,我只好把lock98脱了,在2000/xp下能正常安装到最后一步,文件复制结束后,估计是激活输入法时出错。退出安装后,手工在注册表中添加相应的键值后,通过添加输入法,可以激活输入法并能正常使用。由于现在好多电脑都不配软驱了,我就想做个9x/2000/xp的通用安装程序,省去用软盘安装的麻烦。做之前,我做了测试。在一台没有安装过该输入法的电脑上,把xx.ime,xx.mb,xx.hlp等七个文件复制到系统目录中,在手工在注册表中添加相应数据,然后添加输入法。添加后,能够在输入法图标在看到该输入法,但是却无法使用。而在安装过该输入法的电脑上,先卸载该输入法,再把那七个文件复制到系统目录,然后再添加输入法,这时该输入法却能正常使用。问题出在哪呢?考虑到该输入法的xx.ime是自己单独开发的,不是用微软输入法生成器做出来的。因此,我怀疑安装程序在安装时,还对注册表做了手脚,于是,我文件监视和注册表监视软件,全面监视了安装程序安装的全过程。没有发现复制key之类的文件到c盘,也没有发现在注册表中做其他文章。这就奇怪了。对于一台新的机器,通过手工复制xx.ime,xx.mb,xx.hlp等文件到系统目录的方法,该输入法不能使用,显然,系统在调用xx.ime(实际上是个dll文件)时,该xx.ime肯定作了某种检测并判断出本输入法不是通过安装程序安装到本系统中的,于是不能使用。而,如果安装过,即使卸载了,再手工复制那七个文件进系统目录,系统调用输入法时,该xx.ime作某种检测时,能知道该系统曾安装过该输入法。那它是怎么检测判断的?难道是在硬盘的某个扇区做了记号?以下,我又做了个实验。我把我的系统用ghost做一次恢复。那是以前刚装好机器时做的备份。做备份时还没有安装过该输入法。恢复之后,我把那七个文件手工复制到系统目录,手工编辑注册表,添加输入法,成功了。打开记事本,调用该输入法,成功,也能正常使用。太奇怪了。在从来没有安装过该输入法的其他机器上,用这种方法是不行的。在我曾安装过的机器上,用ghost恢复干净的系统后,用这种方法却能行。这充分说明,安装程序在安装时肯定在我的硬盘上做过手脚了。而且,做的标记用ghost破坏不掉。得到这个结论后,我又做了个试验。我原来在我的c盘上安装过2000,并做过备份。我又用ghost把2000恢复了过来,用上述方法,输入法却不能使用。看来这次ghost把安装程序做的标记破坏了!
我想问一下,该输入法的安装程序是不是真的在硬盘上做了标记?如果做了,是做在什么地方了?xx.ime是如何识别的?
附:1、本来,微软通用输入法生成器做的输入法,其xx.ime对9x与2000/xp是不同的,但这个自编程的ime却可在9x/2000/xp下通用。所以不是因为ime版本不同造成使用问题。2、如何来调试ime文件呢?在新机器上,不通过安装程序安装使用该输入法时,打开记事本,选择该输入法时,输入法状态栏不出来,按键时,输入法没有反应,不能输入法汉字。
有兴趣的,请给我来信:jtfzp@163.com,qq:120365109.希望得到您的指点。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有人会吗?
2004-11-8 10:43
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
既然你说那个ime是个dll,那你就用OllyDBG跟踪一下dll不就行了
2004-11-8 13:59
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我不会用OllyDBG,只会用trw,结果却中断不到这个ime,而且,无法使用该输入法时却没有任何出错提示。不知道怎么调试呢。
2004-11-9 07:18
0
游客
登录 | 注册 方可回帖
返回
//