引用
什么是整合包?
经常有朋友这样问我,这里是我对整合包的了解。希望能够帮助刚接触NLITE及整合包制作的朋友更好的了解整合包。
整合包和普通安装程序在本质上并无多大区别。
无非就是两个动作:
1.复制文件到指定位置。
2.注册表及相关信息写入。
安装过程这里我小举个列子:假设我们安装软件RAR,运行RAR的安装程序,安装程序把RAR程序的文件安装到指定的地方,这样动作1就完成了。接下来就是注册信息的写入,动作2完毕。
这样RAR的安装就算是完成了。当我们运行RAR的时后,系统会根据RAR的程序文件及注册表的信息去运行RAR这个程序。(我这只是作个简单例子,大家不必深究运行过程。)
整合包和普通安装程序的区别在于:
软件安装程序系统是在你有操作系统的前题下进行的动作。
整合包是经过NLITE处理之后,与操作系统进行整合。整合完毕的系统,我们在它装此系统的同时它也进行了相应程序的安装。系统装好了,软件也装好了。十分方便。
在比较了解的整合包有三种方法,这里只做简述具体请查阅论坛内其它文章。(据我了解有5个种类的但其它种类不知到。。。)
第一种是在系统安装在只剩十三分钟的时后进行安装。这种方法最为便利,可做成自解压都行。
第二种是利用INF文件进行整合包制作。原理就是INF文件指定哪些文件复制到哪里,并且写入注册表相关信息。(INF系列整合包需要INI文件指引)
第三种是利用INI文件进行替换安装源文件和源组件信息的整合包(例如windows补丁整合包、输入法整精简整合包)。
这是我个人的分类方式。若哪位高手有更好的意见,欢迎指出。或者本文有什么不足的地方也欢迎指出。
---------------------------------------------------------------------------------------------------------------------------------------
制作方法介绍这里附上逍遥茶的文章。具体出处我就不清楚了,反正我是从逍遥茶写的文章里找出来的。所以就写他的名字了。
以上文章为本人转帖。若冒犯到作者请与我联系。我将立克删除。
nLite整合包制作入门整合包制作入门
按照不同的制作思路,将整合包分为四类。 一,利用CMD命令来默认安装
这种方式适宜整合一些比较小的而且支持默认安装或者可绿化的软件。
下面以我所做的“微软虚拟光驱整合包”为例,介绍一下具体的做法。
1. 新建配置文件,并命名为entries_msvcd.ini。配置文件一定要以entries开头。 [general]
builddate=2006/02/25
description=微软虚拟光驱整合包
language=简体中文
title=msvcdTool
version=
website=
[dosnet_files]
d1,mscd.exe ;指明mscd.exe存在于I386文件夹中
[txtsetup_files]
mscd.exe = 1,,,,,,,45,0,0 ;告诉setup要将mscd.exe复制到TEMP文件夹
[addhive] ;这一节是用添加注册表选项的
KLM,"Software\Microsoft\Windows\CurrentVersion\IntlRun","msvcd",,"temp\mscd.exe"
:利用注册表中的“IntlRun”将已经复制到TEMP中的MSCD.EXE运行一次。
HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnce","mscd",,"cmd.exe /c del /f /Q %systemroot%\temp\mscd.exe"
;利用“RunOnce”将TEMP中的MSCD.EXE删除。
2“微软虚拟光驱”包括2个文件,我们可利用WinRAR来创建一个自解压程序,并命名为Mscd.exe。再用Makecab将Mscd.exe压缩成mscd.ex_ 3.再用Wincab将entries_msvcd.ini和mscd.ex_打包成“微软虚拟光驱整合包.CAB”。这样一个简单的整合包就做成了。
二,直接复制类,就是将程序中的各个文件直接复制到目标文件夹。有的程序还得添加相关的注册表项。 这种方式才是最纯真的整合。
下面还是以我所做的“光驱开关整合包”为例,介绍一下具体的做法。
1. 新建配置文件,并命名为entries_cd.ini。
[general]
builddate=2006/02/25
description=光驱开关整合包
language=简体中文
title=光驱开关
version=
website=
[dosnet_files]
d1,Close.exe
d1,open.exe
[txtsetup_files]
close.exe = 1,,,,,,,2,0,0 ;将文件复制到System32文件夹中。
open.exe = 1,,,,,,,2,0,0
[addhive]
hkcr,"*\shell\弹出光驱\command",,,"Open.exe"
hkcr,"*\shell\关闭光驱\command",,,"Close.exe"
;在所有文件的右键添加打开和关闭光驱的命令链接。
hkcr,"Folder\shell\弹出光驱\command",,,"Open.exe"
hkcr,"Folder\shell\关闭光驱\command",,,"Close.exe"
; 在所有文件夹的右键添加打开和关闭光驱的命令链接。
2. 这个“光驱开关”程序包括2个文件Open.exe和Close.exe。
分别用ModifyPE.exe来处理一下:
用ModifyPE.exe Open.exe -c 指令来MOD一下,然后再makecab Open.exe,这样Windows在安装过程中就 会路过较验Open.ex_使安装可以 继续下去,当然,Windows会自动记录这一事件,在系统日志中可以看到。
3. 最后用Wincab来将entries_cd.ini,Open.ex_,Close.ex_打包即可。
三,以补丁的方式来整合地。这种方式最为简单。也是适宜用整合可默认安装或者绿色软件。 以“ResHacker整合包”为例,来进行说明。
1. 建立一个名为ResHacker的工作文件夹。
2.在“ResHacker”文件夹下建立一个名为“SVCPACK”的子文件夹和一个名为 “entries_Reshacker.ini”的配置文件。结构如下:
D:.
│
│ entries_Reshacker.ini
│
└─SVCPACK
Reshacker.exe
3.将创建好的自解压安装程序“Reshacker.exe”复制到“SVCPACK”文件夹中。
4.编写“entries_Reshacker.ini”的配置文件。
[general]
builddate=2006/02/25
description=Reshacker整合包
language=简体中文
title=Reshacker
version=
website=
[EditFile]
I386\SVCPACK.INF,SetupHotfixesToRun,AddProgram ;用于运行“SVCPACK”文件夹中的程序。
[AddProgram]
Reshacker.exe
5.将“SVCPACK”文件夹和“entries_Reshacker.ini”打包。
四,利用INF文件来安装程序。此种方式比较灵活,可以整合大多数的程序。 下面以“Unlocker整合包”为例,来介绍。
1. Unlocker 是一个免费的右键扩充工具,使用者在安装后,它便能整合于鼠标右键的操作当中,当使用者发现有某个档案或目录无法删除 时,只要按下鼠标右键中的「Unlocker」,那么程序马上就会显示出是哪一些程序占用了该目录或档案,接着只要按下弹出的窗口中的 「Unlock」就能够为你的档案解套啰。Unlocker 不同于其它解锁软件的部分在于它并非强制关闭那些占用档案的程序,而是以解除档案与 程序关连性的方式来解锁,因此不会像其它解锁程序一样因为强制关闭程序而造成使用者可能的数据遗失。
程序包括4个文件:
Unlocker.cfg
Unlocker.exe
UnlockerCOM.dll
UnlockerDriver4.sys
先将这4个文件用Wincab打包成Unlocker.cab
2.编写“entries_Unlocker.ini”的配置文件。
[general]
builddate=2006/03/01
description=Unlocker整合包
language=简体中文
version=
website=
[sysoc] ;这节的作用是让Setup将要整合的程序作为Windows的一个组件来安装。也就是运行一下Unlocker.inf。
Unlocker=ocgen.dll,OcEntry,Unlocker.inf,HIDE,7
[dosnet_files]
d1,Unlocker.inf
d1,Unlocker.cab
[txtsetup_files]
Unlocker.cab = 100,,,,,,_x,,3,3 ;_x代表Unlocker.cab这文件未经压缩。
Unlocker.inf = 100,,,,,,,20,0,0
3.编写“Unlocker.inf”安装控制文件。并用Makecab将其压缩为“Unlocker.in_”
[Version] ;版本描述信息,主要用于版本控制。
signature="$CHICAGO$" ;适用于98以后的系统。
[DefaultInstall] ;执行安装。
Opti
Tip = "Unlocker"
Modes = 0,1,2,3
CopyFiles = prog.main
AddReg = install_AddReg
[Optional Components] ;要操作的项目
Unlocker
[Unlocker]
Opti
Tip = "Unlocker"
Modes = 0,1,2,3
CopyFiles = prog.main
AddReg =install_AddReg
[SourceDisksNames.x86] ;指明源盘信息。
1="MainProgramFiles","Unlocker.cab",,"i386"
[DestinationDirs] ;程序安装路径
prog.main = 16422,"Unlocker"
[SourceDisksFiles] ;指定安装时使用的源文件和盘符序列码、盘描述符。
Unlocker.cfg =1
Unlocker.exe =1
UnlockerCOM.dll =1
UnlockerDriver4.sys =1
[install_AddReg]
hkcr,"*\shellex\ContextMenuHandlers\UnlockerShellExtension",,,"{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}"
hkcr,"CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}",,,"UnlockerShellExtension"
hkcr,"CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}\InProcServer32",,,"%01%\UnlockerCOM.dll"
hkcr,"CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}\InProcServer32","ThreadingModel",,"Apartment"
hkcr,"CLSID\UnlockerShellExtension",,,"{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}"
hkcr,"Directory\shellex\ContextMenuHandlers\UnlockerShellExtension",,,"{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}"
hkcr,"Folder\shellex\ContextMenuHandlers\UnlockerShellExtension",,,"{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}"
hklm,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{DDE4BEEB-DDE6-48fd-8EB5- 035C09923F83}",,"UnlockerShellExtension"
[prog.main]
Unlocker.cfg
Unlocker.exe
UnlockerCOM.dll
UnlockerDriver4.sys
4.将Unlocker.cab,Unlocker.in_,entries_Unlocker.ini打包