整合包制作入门知识

X-Stan / 八月 13th, 2009 / No Comments / Tags: / Posted in 技术园林 / 12,223 views

通常按照不同的制作思路,将Nlite整合包分为以下四类:

一,利用CMD命令来默认安装

这种方式适宜整合一些比较小的而且支持默认安装或者可绿化的软件。

下面以我所做的“微软虚拟光驱整合包”为例,介绍一下具体的做法。

1. 新建配置文件,并命名为entries_msvcd.ini。配置文件一定要以entries开头。

[general]
builddate=2006/02/25
description=微软虚拟光驱整合包
language=简体中文
title=msvcdTool
version=1.0
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=1.0
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=3.0
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=1.7.2
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] ;执行安装。
OptionDesc = “Unlocker”
Tip = “Unlocker”
Modes = 0,1,2,3
CopyFiles = prog.main
AddReg = install_AddReg
[Optional Components] ;要操作的项目
Unlocker

[Unlocker]
OptionDesc = “Unlocker”
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打包。

Tags:
转载请遵循 "署名-非商业用途" 的创作共用协议, 引用请附上文章原始地址
如喜欢这篇文章或者本站,建议您通过RSS订阅, 以及时获取更新内容!

«

»

评论暂缺

  • (Required)
  • (Required, will not be published)