|
|
[这个贴子最后由emca在 2003/11/26 08:36pm 第 3 次编辑]
!制作PE的最新尝试!光盘文件的超级压缩!
深山红叶原创,只可抄袭操作,不可抄袭发表:D 因为本人现在为止连口水都没有赚到:( 大家不顶以后就不发这类内容了!
为了能够在光盘中放入更多的文件,我们一般都使用精简不必要的文件、使用Aspack等压缩可执行文件和动态链接库等方法,但这些方法的压缩率都比较有限,而且有些文件根本不能压缩,一压缩就无法正常使用。
今天本人发现一种新的方法,可以不管什么文件都可以拼命压缩,绝对不影响运行!
●前提:
预设了内存虚拟磁盘的PE环境
●所需软件:
WinRAR、PEBuilder生成或其他方法生成的光盘制作环境,只要有一定容量的虚拟磁盘设定就行。
●软件示例:
以EasyRecovery Pro为例说明,注意:以下简称 ERP。下面的操作都是在真实的WindowsXP环境进行。
该程序安装后大约27MB左右(具体看版本不同而稍有出入,不要出来抬杠!),设法去除一些运行时不需要的语言文件、对部分动态链接库文件用Aspack进行压缩后,大约还有、24MB左右。注意进行这些处理时注意备份,运行时提示有任何文件缺少时请立即用备份恢复,直到运行正常为止。
●操作步骤:
1、先保证安装好WINRAR。
进入ERP安装目录(即进入目录内!不是直接压缩这个目录!),按CTRL+A全选,右击鼠标,选择WINRAR压缩菜单项,选择“添加到压缩文件...”,选择“创建稳压格式文件”。不要确定。
2、选择“高级”选项卡,点击“自解压”按钮,在“常规”选项卡的“解压路径”中输入B:\,在“解压后运行”下输入ERP的主程序文件名,比如Easyrecovery.exe(与实际的主程序名称一致,不带路径!)。
3、选择“模式”选项卡,选中“全部隐藏”、“跳过已存在的文件”,然后点击“确定”,再点击后续对话框中的“确定”,压缩开始。不久生成一个压缩包。
4、将这个压缩包复制到光盘制作的某个文件夹,比如programs\easyrecovery,没有文件夹就创建一个,当然不创建文件夹直接放在什么位置也行(看起来乱而已)。
5、在NU2Menu或GoeShell等Shell(外壳)程序调用脚本中(比如Nu2menu.xml等),添加相关的调用命令行,把调用的文件指向上述压缩后添加到光盘制作目录中的那个自解压压缩包即可。如果想有更复杂的控制,可自己编写批处理脚本(即.CMD类型的文件)实现,比如自动清除临时文件等。
●原理:
最终在光盘系统中执行调用命令时,先直接调用的其实是那个自解压压缩包文件;由于该压缩包我们在制作时指定了默认解压路径并且不显示任何信息,因此程序会先自动将压缩包向虚拟磁盘(这里是前文提到的设置虚拟磁盘时的B:盘)解压,然后自动执行上述第2步中指定的程序(这个是真正的主程序),从而实现软件安全运行。
●效果:
由于WinRAR对整个目录进行压缩,且RAR的压缩率非常优秀,因此17MB压缩后才6MB多一点!又由于解压后的文件与压缩前是一样的,因此这种方式下程序运行不容易出错(除非对安装路径有特殊要求的软件例外)。
至于打开速度,一方面内存虚拟盘(B:)的速度与内存速度相关,远非硬盘速度所能比,因此读取光盘后到内存虚拟盘、解压等步骤几乎感觉不到明显延迟!况且光盘读取时是机械操作,由于从原来的24MB减小到了6MB,读取光盘的时间只有普通不压缩直接全部从光盘读取的1/3左右,读取速度的提升反而极其明显(当然实际读取时不会全部载入,此处只是估算,再次请不要抬杠!)。两相抵折,不会出现明显的性能下降问题。
上述做法在本人的光盘制作过程中完全验证通过!
●声明
只欢迎大家进行技术探讨,绝对不喜欢有人骂街,即使有不足和不周,也应当科学、善意地提出!欢迎大家提出更好的想法!
●补充
如果想运行后自动删除虚拟盘中的临时文件,可编辑一个文本格式的文件放在上述程序的相同目录,文件名比如是erp.cmd,参考内容如下(具体路径请灵活更改):
@echo off
start /min /wait %SystemDrive%\programs\Easyrecoverypro\Easyrecoverypro.exe
rd /s /q %TEMP%\
exit
上面是使用环境变量定位,也可写成:
@echo off
start /min /wait %SystemDrive%\programs\Easyrecoverypro\Easyrecoverypro.exe
rd /s /q %TEMP%\
exit
如果考虑到虚拟盘中有其他临时内容,也可带目录压缩,然后在上述脚本中改为删除指定的临时程序目录,此不赘述,请照猫画虎地进行(不要抬杠!说我没有考虑到)。但一般不建议在临时虚拟磁盘中存放重要文件的!!
|
|