无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 17193|回复: 39
打印 上一主题 下一主题

一种在PE中安装输入法的新方法

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-12 06:38:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在PE中安装传统的基于IME文件的输入法,可以使用PECMD来实现,以极品五笔输入法为例:
1。将输入法支持文件jpwb.ime和jpwb.mb复制到PE系统目录System32中;
2。用PECMD调用API函数:
     PECMD CALL $imm32,ImmInstallIMEW,%SystemRoot%\System32\jpwb.ime,极品五笔
3。启动internat.exe。
经过试验,这种方法不仅在PE可以,在XP中都行。
2#
发表于 2009-11-12 06:58:23 | 只看该作者
好,省个EXE.
回复

使用道具 举报

3#
发表于 2009-11-12 07:28:04 | 只看该作者
学习了,试一下谢谢谢
回复

使用道具 举报

4#
发表于 2009-11-12 10:01:15 | 只看该作者
楼主的新方法很好用,谢谢
回复

使用道具 举报

5#
发表于 2009-11-12 10:59:00 | 只看该作者
用上了,谢谢楼主
---------------------------
又,是不是连pecmd都不需要,直接这样:
Rundll32 imm32.dll,ImmInstallIMEW,%SystemRoot%\System32\jpwb.ime,极品五笔

[ 本帖最后由 pseudo 于 2009-11-12 11:06 编辑 ]
回复

使用道具 举报

6#
发表于 2009-11-12 15:39:28 | 只看该作者
智能abc好像没用啊?应该加那几个文件到system32?
回复

使用道具 举报

7#
发表于 2009-11-12 16:19:39 | 只看该作者
很好,支持
简单实用!
回复

使用道具 举报

8#
发表于 2009-11-12 16:25:09 | 只看该作者
原帖由 pseudo 于 2009-11-12 10:59 发表
用上了,谢谢楼主
---------------------------
又,是不是连pecmd都不需要,直接这样:
Rundll32 imm32.dll,ImmInstallIMEW,%SystemRoot%\System32\jpwb.ime,极品五笔

很想知道采用那个命令更快更好?
当然,实际使用应该是感觉不出来的,只能理论上估计了,麻烦清楚的朋友发表一下高见
回复

使用道具 举报

9#
 楼主| 发表于 2009-11-12 20:25:18 | 只看该作者

回复 #6 wjgyz740526 的帖子

智能ABC需要winabc.cwd、winabc.ime和winabc.ovl三个文件,我试过,用此方法同样可以安装。但似乎我的PE某些系统DLL有问题,当输入法处于极品五笔状态时,不能直接从输入法列表中选择智能ABC。在XP系统中没有这个问题。

2010-1-13
已查明原因,是由于极品五笔的IME本身有问题,用输入法生成器重新生成后错误消失。

[ 本帖最后由 shoulea 于 2010-1-13 11:20 编辑 ]
回复

使用道具 举报

10#
 楼主| 发表于 2009-11-12 20:45:48 | 只看该作者

回复 #8 yh_tl 的帖子

rundll32我也试过,但发现均不能成功。是在XP下试的,我先将系统的输入法全删了(winabc.*和jpwb.*还在System32中),然后依次在命令提示符输入以下命令:
rundll32 imm32,ImmInstallIME %SystemRoot%\System32\jpwb.ime
rundll32 imm32,ImmInstallIMEW %SystemRoot%\System32\jpwb.ime
rundll32 imm32,ImmInstallIMEA %SystemRoot%\System32\jpwb.ime
其中第一条我知道很可能会失败,因为DLL实则没有ImmInstallIME这个API,实际有的是ImmInstallIMEA(Ascii版本)和ImmInstallIME(Unicode版本),PECMD调用API时传递的字符串是Unicode,所以要用ImmInstallIMEW;第二条运行没有反应;第三条弹出一个消息框“尝试运行imm32,ImmInstallIMEA C:\windows\system32\jpwb.ime时发生意外”。
所以大家最好还是用PECMD吧。
回复

使用道具 举报

11#
发表于 2009-11-12 21:36:03 | 只看该作者
多谢分享经验,去试试。
回复

使用道具 举报

12#
发表于 2009-11-12 22:39:00 | 只看该作者
原帖由 shoulea 于 2009-11-12 20:45 发表
rundll32我也试过,但发现均不能成功。是在XP下试的,我先将系统的输入法全删了(winabc.*和jpwb.*还在System32中),然后依次在命令提示符输入以下命令:
rundll32 imm32,ImmInstallIME %SystemRoot%\System3 ...

非常感谢,正准备调整一下输入法的使用方式
回复

使用道具 举报

13#
发表于 2009-11-12 23:48:56 | 只看该作者
在水哥终结网启版PE中试图exec加载最小智能abc输入法
试了几次调整加载顺序
智能abc输入法最早加载完成任务
有空用楼主的方法试一下
回复

使用道具 举报

14#
发表于 2009-11-13 08:30:48 | 只看该作者
原帖由 shoulea 于 2009-11-12 20:25 发表
智能ABC需要winabc.cwd、winabc.ime和winabc.ovl三个文件,我试过,用此方法同样可以安装。但似乎我的PE某些系统DLL有问题,当输入法处于极品五笔状态时,不能直接从输入法列表中选择智能ABC。在XP系统中没有这 ...


很奇怪,我也重新试了下,系统自带的智能abc这三个文件可以这样安装,但是新版5.22的智能abc的winabc.cwd、winabcx.ime和winabcx.ovl三个文件却无法安装成功——我在windows系统里测试的
回复

使用道具 举报

15#
发表于 2009-11-15 20:19:54 | 只看该作者
请教楼主,极点五笔如何安装,我试过好象不行。
回复

使用道具 举报

16#
发表于 2009-11-15 23:55:32 | 只看该作者
好,我来试一下将98五笔放到PE3.0中试一下,能否搞定!
回复

使用道具 举报

17#
 楼主| 发表于 2009-11-24 18:44:07 | 只看该作者

回复 #15 stlyq123 的帖子

凡Windows系统自带的基于IME的(或者说可用输入法生成器生成的)输入法,都可以用这种方式安装,因此86五笔、98五笔,以及原来的全拼输入法,甚至郑码等都是可以用这种方法安装的。
极点五笔、搜狗拼音等使用的接口与上面那些输入法不一样,不能这样安装。况且极点五笔本身就是绿色的,直接运行名为registry.exe的程序即可,你为什么要用这种方法安装呢?
回复

使用道具 举报

18#
 楼主| 发表于 2009-11-24 19:11:34 | 只看该作者
其实这种方法并没有什么神秘之处,它的关键是:PECMD可以调用动态链接库DLL中的API函数。

不信你可以在命令提示符下键入以下命令:
      pecmd call $user32,MessageBoxW,#0,Hello world!,hello,#64
你可以得到一个和pecmd mess效果完全相同的消息框。

所以只要合理使用PECM的call $命令,就可以直接调用系统API完全一些任务。需要注意的是API函数名称必须正确,你必须按系统文档MSDN中指出的那样写函数名,如MessageBox写成messagebox就不行;第二是必须在函数名后加一个大写的W,因为系统的API有两套,一套使用ANSI字符集,以A为后缀,另一套使用UNICODE字符集,以W为后缀,PECMD本身是用UNICODE字符集写成的,它调用API时传递的也是UNICODE字符串,所以必须用带W的函数。最后是函数的参数,在PECMD中显然只能传递字符串和整数给系统API,而且字符串只能是UNICODE字符串,整数必须在其前面加一个“#”前缀(这样PECMD才认为它是一个整数,而不是一个UNICODE字符串)。

我们知道Rundll32这个系统自带的EXE也可以调用一些API,如可用它打开一些控制面板中的选项,但是由于我们对它缺乏资料,所以用起来并不好使,甚至上面的简单消息框能不能打开都成问题(有时能成功,有时不成功,有时虽然能打开一个消息但文字是乱码),而PECMD则不成问题,因为我们能看到它的源代码,知道它是怎样实现的。

说到怎样发现这种安装输入法的方法,也是很偶然的。最初我是想自己写一个小程序,以便能将输入法安到外置程序包,因为InstallIME只能安装支持文件位于System32目录的输入法。于是我用记事本打开InstallIME.exe这个文件,希望能发现它调用了API函数,但遗憾的是它是加过密的,看不出来。后来通过在网上搜索,得知可以使用ImmInstallIME函数,于是用C语言写程序,发现确实能安装输入法。后转而一想反正都是调用API函数,PECMD也可以为什么不用PECMD呢,于是就有了这种方法。但我不得不告诉大家,这种方法还是不能将输入法安到外置程序包,所以如果你想这么干就不要白费力气。如果你真想这么干,我还是建你使用极点五笔等输入,这些输入法很优秀,也可以安到外置程序包中。

最后指出一点,传统输入法“词语联想”、“逐渐提示”等选项信息是存在注册表中,通过用Regshot跟踪,我发现它们位于“HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔”(最后一的“极品五笔”是你调用ImmInstallIME函数时传递的第二个参数)。事实上我的PE是这样配置输入法的:
FILE jpwb.*=>%SystemRoot%\System32
FILE winabc.*=>%SystemRoot%\System32


CALL $imm32,ImmInstallIMEW,%SystemRoot%\System32\jpwb.ime,极品五笔
CALL $imm32,ImmInstallIMEW,%SystemRoot%\System32\winabc.ime,智能ABC


REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\FC aid=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\FC input=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\GB/GBK=#0
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\词语联想=#0
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\词语输入=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\光标跟随=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\外码提示=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\极品五笔\逐渐提示=#1


LINK %Programs%\启动\输入法指示器,internat.exe
外置程序包中具有的文件为:internat.exe、jpwb.ime、jpwb.mb、winabc.cwd、winabc.ime、winabc.ovl,外加一个PECMD配置文件,其内容如上。

[ 本帖最后由 shoulea 于 2009-11-24 19:22 编辑 ]
回复

使用道具 举报

19#
发表于 2009-11-24 19:16:14 | 只看该作者
感谢楼主的回复。
回复

使用道具 举报

20#
发表于 2009-11-27 10:36:41 | 只看该作者
我想知道的是 紫光v5和v6怎么装到winpe???
回复

使用道具 举报

21#
发表于 2009-11-27 10:46:58 | 只看该作者
这方法不错。
我在PE里面安装输入法都是在绿色软件下载站下载绿色版本的,然后用那个软件站专门的绿化工具来加载输入法。
回复

使用道具 举报

22#
发表于 2009-11-27 10:50:45 | 只看该作者
试一试再说吧。谢谢分享了。
回复

使用道具 举报

23#
发表于 2009-11-27 10:58:46 | 只看该作者
收藏 备用 ,  用空 改改  pe
回复

使用道具 举报

24#
发表于 2009-11-27 12:46:56 | 只看该作者
这个方案不错,我去试验下~~~~~~~~~~~
回复

使用道具 举报

25#
发表于 2009-11-27 13:05:34 | 只看该作者
收藏。需要,多谢分享。集成ABC就够用了
回复

使用道具 举报

26#
发表于 2009-11-27 14:44:06 | 只看该作者
又有新的了!!!!继续下  收藏起来
回复

使用道具 举报

27#
发表于 2009-11-27 23:20:27 | 只看该作者
学习了好知识!!!!!!
回复

使用道具 举报

28#
发表于 2010-6-8 06:36:17 | 只看该作者
谢谢分享!!试试看!!
回复

使用道具 举报

29#
发表于 2010-6-10 15:15:37 | 只看该作者
下次试试,上次是用h3的pe里面有个exe文件来注册输入法。
回复

使用道具 举报

30#
 楼主| 发表于 2010-6-10 16:08:53 | 只看该作者
原帖由 yjd 于 2010-6-10 15:15 发表
下次试试,上次是用h3的pe里面有个exe文件来注册输入法。


那个EXE所起的作用和这里提供的方法是一样,你可以使用这种方法省掉一个EXE。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 03:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表