社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 2609阅读
  • 7回复

整合包制作入门

楼层直达
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
按照不同的制作思路,将整合包分为四类。

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

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

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

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

[general]
builddate=2006/02/25
description=微软虚拟光驱整合包
language=简体中文
title=msvcdTool
version=1.0
website=唯纯科技 QQ:317786386

[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=唯纯科技 QQ:317786386

[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=唯纯科技 QQ:317786386


[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=唯纯科技 QQ:317786386

[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打包。
 
我们一直在努力!
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
只看该作者 1 发表于: 2006-10-21
啄木鸟winrar3.60 beta 1美化版NLITE整合包
制作心得:
1.首先分析要制作软件的安装过程及结果的作用;
2.先将运行所需要的文件放置到需要的位置;
3.观察安装安装过程中注册的文件(如:DLL文件等等),这是软件能够运行的关键;
4.winrar3.60 beta 1安装特点分析:
A.将所需要文件放置相关位置;(X:\Program Files\)
B.因为运行时可能需要在控制面板、开始菜单等地方添加相关设置,但值得庆幸的是我们要采用的这个版本很有其自身特点的。只要运行X:\Program Files\WINRAR\Uninstall.exe就一些OK了,详见下:

ENTRIES_WINRAR.ini

[general]           ;(常规) 区段用于存放关于你的整合包的特别信息
builddate=2006/4/7 ;制作创建时间
description=啄木鸟winrar3.60 beta 1美化版NLITE整合包 ;“修复程序和整合包”的说明
language=简体中文 ;软件语言
title=啄木鸟winrar3.60 beta 1美化版 ;“修复程序和整合包”的名称
version=3.61 ;软件或包的版本,自动软件‘V’,所以只添写版本就可以了。
website=http://www.zmn120.net/ ;“修复程序和整合包”的更多信息项(整合包的网站出处)
author=啄木鸟             ;自己的标注     
email=su_ht@163.com

[filenames]


[sysoc]     ;将被添加到 sysoc.inf 中的 “[Components]” 区段下
winrar=ocgen.dll,OcEntry,winrar.inf,HIDE,7   ;"winrar"针对其他的包要有独立性

[dosnet_files] ;这个区段下的条目将被添加到 dosnet.inf 的[Files] 区段下
d1,winrar.inf  ; d1 代表着安装程序会在I386 目录 (默认情况下) 下寻找这个文件.
d1,winrar.cab  ;将软件的所有文件打包成.cab文件

[txtsetup_files]
winrar.inf = 100,,,,,,,20,0,0 ;软件一般使用100就可以了,20是让安装程序把 winrar.inf 复制到 %windir%system32.
winrar.cab = 100,,,,,,_x,,3,3 ;_x 代表着这个安装盘上的这个文件没有经过压缩. 如果没有这个, 那么安装程序会认为这个文件已被压缩过了. 这个对于保证安全性和可靠性很重要. 每个 XP 文件都被列在了 layout.inf 中, 包括这个文件的大小 (按字节计算).很明显, 一个文件的压缩前和压缩后的大小是不会相同的. 如果 txtsetup.sif 告诉安装程序 “某个文件未被压缩”,
那么安装程序就会在layout.inf 中查找它的文件大小以确保这个文件未经修改或是损坏. 如果文件大小与 layout.inf 中记录的不同,那么 XP 安装程序就会报错并停止安装. 这个能够保证安装程序的安全性, 以确定文件是否被修改过. 它还能验证文件是否已被损坏.如果文件已被损坏, 那么稍后安装时就可能会出现问题. 如果你以 _x 为关键字在 txtsetup.sif 进行搜索, 那么你就能找到所有未经压缩的 Windows 安装文件.


=============
WINRAR.inf

[Version] ;用于确认 .inf 文件的基本版本信息
signature="$Windows NT$"

[DefaultInstall]
OptionDesc ="啄木鸟工作室 By啄木鸟"
Tip ="3.60 beta 1 NLITE整合包"
Modes =0,1,2,3 ;以上三行做适当带动套用即可
CopyFiles = WIN35.WINRAR,WINRAR.Formats ;复制这两个段内的指定文件
AddReg = WINRAR.AddReg ;将定义段中的内容写入注册表

[Optional Components]
WINRAR ;要保持和包中的CAB文件的文件名相同

[WINRAR]
OptionDesc ="啄木鸟工作室 By啄木鸟"
Tip ="3.60 beta 1 NLITE整合包"
Modes =0,1,2,3
CopyFiles = WIN35.WINRAR,WINRAR.Formats
AddReg = WINRAR.AddReg

[SourceDisksNames.x86]
1="WINRARProgramFiles","WINRAR.cab",,"i386" ; 对应相关文件名即可

[DestinationDirs]
WIN35.WINRAR = 16422,"%RAR1_dir%" ;将定义段中指定的文件复制到指定地方
WINRAR.Formats = 16422,"%RAR2_dir%"

;16422=X:\Program Files\ ,论坛中有详细的列表

[SourceDisksFiles] ;将所有的文件放在此段中定义
Default.SFX=1
Descript.ion=1
File_Id.diz=1
License.txt=1
Order.htm=1
Rar.exe=1
Rar.txt=1
RarExt64.dll=1
RarExt.dll=1
RarExtLoader.exe=1
RarFiles.lst=1
rarnew.dat=1
rarreg.key=1
ReadMe.txt=1
TechNote.txt=1
Uninstall.exe=1
Uninstall.lst=1
UnRAR.exe=1
UnrarSrc.txt=1
WhatsNew.txt=1
WinCon.SFX=1
WinRAR.cnt=1
WinRAR.exe=1
winrar.hlp=1
Zip.SFX=1
zipnew.dat=1
7z.fmt=1
7zxa.dll=1
ace.fmt=1
arj.fmt=1
bz2.fmt=1
cab.fmt=1
gz.fmt=1
iso.fmt=1
lzh.fmt=1
tar.fmt=1
UNACEV2.DLL=1
uue.fmt=1
z.fmt=1

[WIN35.WINRAR] ;定义所以需要的文件,一般要根据安装文件所需要那些文件夹或者说目录而定
Default.SFX
Descript.ion
File_Id.diz
License.txt
Order.htm
Rar.exe
Rar.txt
RarExt64.dll
RarExt.dll
RarExtLoader.exe
RarFiles.lst
rarnew.dat
rarreg.key
ReadMe.txt
TechNote.txt
Uninstall.exe
Uninstall.lst
UnRAR.exe
UnrarSrc.txt
WhatsNew.txt
WinCon.SFX
WinRAR.cnt
WinRAR.exe
winrar.hlp
Zip.SFX
zipnew.dat

[WINRAR.Formats]
7z.fmt
7zxa.dll
ace.fmt
arj.fmt
bz2.fmt
cab.fmt
gz.fmt
iso.fmt
lzh.fmt
tar.fmt
UNACEV2.DLL
uue.fmt
z.fmt


[WINRAR.AddReg]
HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnce","WINRAR",0,"%SystemRoot%\Program Files\WINRAR\Uninstall.exe /setup /s"

;运行Uninstall.exe完成软件安装的最后设置, /setup 是安装参数 ,/s是静态参数,不然会出现一些窗口.
;%SystemRoot%是系统所在的跟目录
;HKLM 与 HKEY_LOCAL_MACHINE 相同


[Strings] ;定义软件所需要的目录
RAR1_dir = "WinRAR\"
RAR2_dir = "WinRAR\Formats"
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
只看该作者 2 发表于: 2006-10-21
ACDSee绿色完美汉化破解版 8.0整合包制作分析
整合包结构:
ACDSee.in_ ;将INF用CBin.EXE压成
Entries_ACDSee.ini
svcpack\ACDSee.exe ;ACDSee.exe是winrar制作的自解压文件
通过svcpack安装不会产生垃圾文件
Entries_ACDSee.ini
[general]
builddate=2006/04/19
description=啄木鸟ACDSee绿色完美汉化破解版 8.0整合包
language=简体中文
title=ACDSee
version=8.0
website=http://www.zmn120.net/
author=啄木鸟
email=su_ht@163.com
[sysoc]
ACDSee
=ocgen.dll,OcEntry
,
ACDSee.inf,HIDE,7
[dosnet_files] ;需要将安装引导文件放置到I386中
d1,ACDSee.inf
[txtsetup_files] ;需要将安装引导文件从I386中复制到SYSTEM32
ACDSee.inf = 100,,,,,,,20,0,0
[EditFile] ;用于运行“SVCPACK”文件夹中的程序
I386\SVCPACK.INF,Setup
ACDSee
ToRun,AddProgram
[AddProgram]
ACDSee.exe
创建好的自解压安装程序“
ACDSee.exe
”复制到“SVCPACK”文件夹中。
注意红色标注的地方要一一对应.
==============
ACDSee.inf
[Version];版本描述信息,主要用于版本控制。
Signature=$Windows NT$
[DefaultInstall] ; 默认情况下,会执行 Installation 节。包含指向其他节的指针,该节可用于指定要复制和删除的文件、注册表的更新、.inf 文件的更新等。
OptionDesc = "ACDSee 8.0 Addon"
Tip = "ACDSee 8.0"
Modes = 0,1,2,3
ProfileItems =
ACDSee.AddShortcut
;添加开始菜单项
[Optional Components] ;列出用户单击“控制面板”上的“添加/删除程序”图标。
ACDSee

[
ACDSee
]
OptionDesc = "ACDSee 8.0 Addon"
Tip = "ACDSee 8.0"
Modes = 0,1,2,3
ProfileItems =
ACDSee.AddShortcut

[
ACDSee.AddShortcut
]
Name = ACDSee 8.0;菜单中快捷方式名
CmdLine= 16422,"%
prog_dir
%",ACDSee8.exe ;连接的主目录,具体文件夹,快捷方式的原文件
WorkingDir = 16422,"%
prog_dir
%" ;规范目录
InfoTip= ACDSee绿色完美汉化破解版 8.0 。 ;快捷方式的说明
[Strings]
prog_dir
= "ACD Systems\ACDSee\8.0" ;定义文件目录
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
只看该作者 3 发表于: 2006-10-21
啄木鸟智能陈桥 5.8 干净版nLite整合包制作分析
Entries_Znwb.ini
[general]
builddate=2006/04/17
description=啄木鸟智能陈桥 5.8 干净版整合包
language=简体中文
title=智能陈桥干净版
version=5.8
website=http://www.zmn120.net/
author=啄木鸟
email=su_ht@163.com
[sysoc]
znwb
=ocgen.dll,OcEntry,
znwb.inf
,HIDE,7
[dosnet_files]
d1,znwb.inf
d1,znwb.cab
d1,ActIME.exe
d1,chenhu2.ime
d1,chenhu3.ime
d1,chenhu4.ime
d1,chenhu5.ime
d1,chenpath.chh
d1,dmshell.dll
[txtsetup_files]
ActIME.exe = 1,,,,,,,2,0,0 ;激活输入法的工具
chenhu2.ime = 1,,,,,,,2,0,0 ;以下6个文件用注册表检测安装过程的时候你会发现,这6个文件会被安装到SYSTEM32中.
chenhu3.ime = 1,,,,,,,2,0,0
chenhu4.ime = 1,,,,,,,2,0,0
chenhu5.ime = 1,,,,,,,2,0,0
chenpath.chh= 1,,,,,,,2,0,0
dmshell.dll = 1,,,,,,,2,0,0
znwb.inf= 100,,,,,,,20,0,0
znwb.cab= 100,,,,,,_x,,3,3;安装过程中会将CAB解压安需分配
[addhive];用注册表检测会发现有下面的变化
HKLM,"Software\Microsoft\Windows\CurrentVersion\IntlRun","znwb",,"ActIME.exe 'IMEID=E0200804' 'IMEFile=CHENHU4.IME' 'IMEName=智能陈桥输入平台 5.8'"
HKCU,"Software\Microsoft\Windows\CurrentVersion\RunOnce","znwb",,"ActIME.exe 'IMEID=E0200804' 'IMEFile=CHENHU4.IME' 'IMEName=智能陈桥输入平台 5.8'"
======================
znwb.inf
[Version]
Signature=$Windows NT$
[DefaultInstall]
OptionDesc = "智能陈桥 5.8 干净版Addon"
Tip = "智能陈桥 5.8 干净版"
Modes = 0,1,2,3
CopyFiles=
prog.main
[Optional Components]
znwb
[
znwb
]
OptionDesc = "智能陈桥 5.8 干净版 Addon"
Tip = "智能陈桥 5.8 干净版"
Modes = 0,1,2,3
CopyFiles=
prog.main
[SourceDisksNames.x86]
1="
znwb Files
","
znwb.cab
",,"i386" ;把
znwb.cab整合到I386怒路中
[DestinationDirs]
prog.main
= 24,"%prog_dir%" ;24代表系统的跟目录
[SourceDisksFiles]
big5hz.ov1= 1
chdhzcm.chh = 1
chen1.wav = 1
chen2.wav = 1
chenbfck.exe = 1
chenbmxg.exe = 1
chencksz.exe = 1
chencyzk.chh = 1
chencyzk.txt = 1
chendhz.chh = 1
chendwdw.txt = 1
chengbk.ovl = 1
chenhfck.exe = 1
chenhu2.ime = 1
chenhu4.ime = 1
chenhu5.com = 1
chenjfk.ov1 = 1
CHENONTK.OV1 = 1
chenpymb.ov1 = 1
chenskfh.chh = 1
chenszsj.chh = 1
chenwbz.chh = 1
chenxf.exe= 1
chenynhz.txt = 1
chenzdfh.chh = 1
chenzdfh.txt = 1
chenzdym.chh = 1
chenzdym.txt = 1
chenznwb.exe = 1
chfz0.bmp = 1
chfz1.bmp = 1
chfz2.bmp = 1
chfz3.bmp = 1
chfz4.bmp = 1
chgbkbh.chh = 1
chpyjm1.txt = 1
chpykey0.txt = 1
chpykey1.txt = 1
chpykey2.txt = 1
chpykey3.txt = 1
chpykey4.txt = 1
chpykey5.txt = 1
chszsj01.chh = 1
chszsj02.chh = 1
chszsj03.chh = 1
chszsj04.chh = 1
chszsj43.chh = 1
chszsj44.chh = 1
chver.txt = 1
chwbcmxz.chh = 1
chwbjm.txt= 1
chwbsrzh.chh = 1
chword.chh= 1
chznwb11.bmp = 1
chznwb12.bmp = 1
chznwb13.bmp = 1
chznwb14.bmp = 1
chznwb15.bmp = 1
chznwb16.bmp = 1
chznwb17.bmp = 1
chznwb18.bmp = 1
chznwb21.bmp = 1
chznwb22.bmp = 1
chznwb23.bmp = 1
chznwb24.bmp = 1
chznwb25.bmp = 1
chznwb26.bmp = 1
chznwb27.bmp = 1
chznwb28.bmp = 1
chznwb31.bmp = 1
chznwb32.bmp = 1
chznwb33.bmp = 1
chznwb34.bmp = 1
chznwb41.bmp = 1
chznwb51.bmp = 1
chznwb52.bmp = 1
cwb.ov1 = 1
cwbzlcz1.chh = 1
cwbzlcz1.txt = 1
cwbzlcz2.chh = 1
jfhzb.txt = 1
pyqspmb.txt = 1
readme.txt= 1
softkey.txt = 1
uwb.chh = 1
znwb1.bmp = 1
znwb2.bmp = 1
[prog.main]
big5hz.ov1
chdhzcm.chh
chen1.wav
chen2.wav
chenbfck.exe
chenbmxg.exe
chencksz.exe
chencyzk.chh
chencyzk.txt
chendhz.chh
chendwdw.txt
chengbk.ovl
chenhfck.exe
chenhu2.ime
chenhu4.ime
chenhu5.com
chenjfk.ov1
CHENONTK.OV1
chenpymb.ov1
chenskfh.chh
chenszsj.chh
chenwbz.chh
chenxf.exe
chenynhz.txt
chenzdfh.chh
chenzdfh.txt
chenzdym.chh
chenzdym.txt
chenznwb.exe
chfz0.bmp
chfz1.bmp
chfz2.bmp
chfz3.bmp
chfz4.bmp
chgbkbh.chh
chpyjm1.txt
chpykey0.txt
chpykey1.txt
chpykey2.txt
chpykey3.txt
chpykey4.txt
chpykey5.txt
chszsj01.chh
chszsj02.chh
chszsj03.chh
chszsj04.chh
chszsj43.chh
chszsj44.chh
chver.txt
chwbcmxz.chh
chwbjm.txt
chwbsrzh.chh
chword.chh
chznwb11.bmp
chznwb12.bmp
chznwb13.bmp
chznwb14.bmp
chznwb15.bmp
chznwb16.bmp
chznwb17.bmp
chznwb18.bmp
chznwb21.bmp
chznwb22.bmp
chznwb23.bmp
chznwb24.bmp
chznwb25.bmp
chznwb26.bmp
chznwb27.bmp
chznwb28.bmp
chznwb31.bmp
chznwb32.bmp
chznwb33.bmp
chznwb34.bmp
chznwb41.bmp
chznwb51.bmp
chznwb52.bmp
cwb.ov1
cwbzlcz1.chh
cwbzlcz1.txt
cwbzlcz2.chh
jfhzb.txt
pyqspmb.txt
readme.txt
softkey.txt
uwb.chh
znwb1.bmp
znwb2.bmp
[Strings];定义文件所需要的目录
prog_dir = "chenhu2"
==================
下面附上输入法安装制作原理的过程,你就会明白了.
[转帖]输入法安装制作原理
来源:
http://wbfansbbs.yeah.net
作者:酋长
虽然是老贴了,但希望对广大朋友有帮助!
★Win9x/Me 系统
步骤一:拷贝文件。
在Win9x/Me系统下, 把输入法相关文件(一般是*.IME,可能还有其它 .DLL文件)拷贝到 Win$\System$ 目录下。
步骤二:修改注册表。
①第一处:
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layouts\ 下新建主键(E0xx0804, 请替换 xx 为一不重复的十六进制数),再在该主键下新建三个字串项,内容如下:
格式为:名称 = 数据
IME File = imeName.ime
Layout File = kbdus.kbd
Layout Text = 输入名名称
②第二处:
在 HKEY_CURRENT_USER\Keyboard Layout\preload 下新建一主键 x ,(数字, 比现有的主键最大数大 1)
其内容为:(默认) = E0xx0804 (默认用 "" 表示键名, E0xx0804 就是上述第一处新建的那一个主键名)
步骤三:激活输入法。(即使桌面右下角的输入法列表中出现新安装的输入法)
简单地说就是调用一个Windows的API,激活刚刚安装的输入法,否则只有在重启计算机后,桌面右下角的输入法列表中才会出现你安装的输入法。
使用Windows API:LoadKeyoardLayout("E0xx0804", KLF_ACTIVATE), 激活输入法, 具体用法请查看 MSDN。
★WinNT/2000/XP 系统
步骤一:拷贝文件。
在WinNT/2000/XP 系统下, 把输入法相关文件(一般是*.IME,可能还有其它 .DLL文件)拷贝到 Win$\System$ 目录下。
步骤二:修改注册表。
①第一处:
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layouts\ 下新建主键(E0xx0804, 请替换 xx 为一不重复的十六进制数),再在该主键下新建三个字串项,内容如下:
格式为:名称 = 数据
IME file = imeName.ime
Layout File = kbdus.DLL
Layout Fext = 输入名名称
②第二处:
HKEY_CURRENT_USER\Keyboard Layout\Preload 下,新建字串项 x ,名称及数据为: x = E0xx0804 (x 是数字, 比现有的最大键名值大1, E0xx0804 是上述新建的主键名)。
步骤三:激活输入法。(即使桌面右下角的输入法列表中出现新安装的输入法)
使用Windows API:LoadKeyoardLayout("E0xx0804", KLF_ACTIVATE), 激活输入法, 具体用法请查看 MSDN。
说明:
①步骤三如果不做的话,则在重启计算机后,桌面右下角的输入法列表中才会出现你安装的输入法,否则需要用户手动在“控制面板”的“输入法”中添加到桌面右下角的输入法列表中去。
②Win$是指系统Windows的安装目录,Win9x/Me下一般是 x:\Windows,而 WinNT/2000 一般是 x:\Winnt,WinXP下一般是 x:\Windows。
③System$是指 Windows的系统目录,Win9x/Me下一般是 Win$ 目录下的 System 目录,WinNT/2000/XP 下一般是 Win$ 下的System32目录。
另:有一些朋友在写输入法安装程序时,只使用 ImmInstallIME 这个API,好像不用修改注册表,应该也是可以的。具体还是查看MSDN吧,这个API我没有使用过。
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
只看该作者 4 发表于: 2006-10-21
nLite 整合包定义文件 entries.ini 说明以及相关补遗
基本上,这些个 Entrie*.ini 文件是 nLite 整合包里最重要的文件了. 它向整合工具提供了有关如何进行整合的数据. 随着时间的流逝, 会另外添加很多新功能... 但我只能在此列出目前了解到的定义.

==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

文件头

这个文件头部只是用来说明相关信息的. 整合工具是用不到它的.
代码:
;############################################################################################
;# entries.ini
;# ---------------------
;# 这个文件包含了将被整合到 Windows 安装文件中的所有条目的列表.
;############################################################################################


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[general]

这个 general (常规) 区段用于存放关于你的整合包的特别信息.
builddate=你创建这个整合包的日期
description=关于这个整合包的信息.
language=你的整合包所使用的语言.
title=整合包的名称.
version=整合包的版本.
website=整合包的网站出处.

代码:
[general]
builddate=2005/08/24
description=RyanVM's Post-SP2 Update Pack for Windows XP
language=English
title=RyanVM Update Pack
version=1.3.1
website=http://ryanvm.msfn.org/


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[filenames]

这个 filenames 区段用于设置一个整合包环境变量. 例如... 整合包的关键 inf 文件. 以下实例设置的环境变量将会代替RVMUpPck.inf
%maininf% 只在这个 entries.ini 文件中有效.

在你所创建的整合包中, 这个信息必须是独一无二的. 请不要在不同的整合包中重复使用同样的信息!
代码:
;这个区段包含了用于 RyanVM 文件名的环境变量.
[filenames]
maininf=RVMUpPck.inf


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[sysoc]

Sysoc.inf
它是系统可选组件定义 Inf 文件, 用于在安装期间控制安装哪些 Windows 组件, 还可用于定义是否隐藏某个 Windows 组件.

对于整合包定义来说, 这个区段可有可无, 不是很重要. 目前主要是用于在安装期间让 Windows 启动处理RVMUpPck.inf 文件.

entries.ini 中的 [sysoc] 区段下的条目:
RVMUpdatePack=ocgen.dll,OcEntry,%maininf%,HIDE,7

将被添加到 sysoc.inf 中的 “[Components]” 区段下, 由于其中带有 HIDE, 你将无法在 Windows 组件向导中看到 RyanVM 条目.
ocgen.dll 和 OcEntry 是用于处理这行的 dll 文件及其入口
%maininf% 将被转换为 "RVMUpPck.inf" (这是很重要的部分)
7 是个数字, 我不了解它的具体含义.

你用 Google 搜索 sysoc.inf 就能看到很多相关介绍网页.

在你所创建的整合包中, 这个信息必须是独一无二的. 请不要在不同的整合包中重复使用同样的信息!
代码:
;这个区段所包含的条目将被添加到 Sysoc.inf 的 [Components] 区段下.
[sysoc]
RVMUpdatePack=ocgen.dll,OcEntry,%maininf%,HIDE,7


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[dosnet_files]

这个 dosnet_files 区段用于向 dosnet.inf 的 [Files] 区段下添加文件定义. 其格式通常为 ”d1,filename.ext”, d1 代表着安装程序会在I386 目录 (默认情况下) 下寻找这个文件. 你可以在 dosnet.inf 的 [Directories] 区段下找到 d1 所代表的路径.
代码:
;这个区段下的条目将被添加到 dosnet.inf 的[Files] 区段下
[dosnet_files]
d1,%maininf%
d1,archvapp.inf
d1,cobramsg.dll
d1,guitrna.dll
d1,wups2.dll
d1,xpsp3res.dll


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[txtsetup_dirs]

这个 [txtsetup_dirs] 区段用于给 Windows (应该说是系统根目录) 下的某个子路径分配一个占位号码. 这样 [txtsetup_files] 区段下的定义就可以使用这个路径代码了. 以下是个例子:

241 = system32\PreInstall\WinSE\wxp_x86_0409_v1

然后在 txtsetup_files 区段下你就能看到:
spcustom.dll = 100,,,,,,,241,0,0,spcustom.dll.ref
spmsg.dll = 100,,,,,,,241,0,0,spmsg.dll.ref
spuninst.exe = 100,,,,,,,241,0,0,spuninst.exe.ref
spupdsvc.exe = 100,,,,,,,241,0,0,spupdsvc.exe.ref
sysmoda.dll = 100,,,,,,,111,0,0
update.exe = 100,,,,,,,241,0,0,update.exe.ref
updspapi.dll = 100,,,,,,,241,0,0,updspapi.dll.ref

这个 241 会告诉安装程序将那些个文件置入
system32\PreInstall\WinSE\wxp_x86_0409_v1
文件夹中.

若想深入了解 [txtsetup_dirs] 和 [txtsetup_files], 请阅读以下帖子:
http://gosh.msfnhosting.com/txtsetup.htm

http://www.msfn.org/board/index.php?showtopic=14852
代码:
;以下条目将被添加到 txtsetup.sif 的 [WinntDirectories] 区段下
[txtsetup_dirs]
241 = system32\PreInstall\WinSE\wxp_x86_0409_v1


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[txtsetup_files]

若想深入了解 [txtsetup_dirs] 和 [txtsetup_files], 请阅读以下帖子:
http://gosh.msfnhosting.com/txtsetup.htm

http://www.msfn.org/board/index.php?showtopic=14852
代码:
; 以下条目将被添加到 txtsetup.sif 的[SourceDisksFiles] 区段下
[txtsetup_files]


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[svcpack_catalogs]
总的来说, 当你安装修补程序包 Hotfix 时, 都会有一个对应的 .Cat 安全编录文件. 如果你想让你整合的修补程序包获得数字签名, 那么你就应当将 .Cat 安全编录置入这个地方.. 如果你不将其置入这里, 那么当你没有禁用系统文件保护的情况下安装 Windows 时, 很可能会遇到问题.
代码:
;这个区段包含了将被添加到 svcpack.inf 中的 .cat 安全编录列表
[svcpack_catalogs]


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[drivercab_expand]

这个区段下的条目是那些同时存在于 i386 文件夹中和 Driver.cab(包括 spx.cab 等等, 它们都是驱动包) 驱动包中的文件.

列在这里的文件将被展开到临时文件夹中, 然后整合程序会用其添加替换到驱动包中.
代码:
;以下列出的文件同时存在于 i386 文件夹中和 driver.cab 驱动包中.
;它们将被展开, 并在更新驱动包时, 将其添加到驱动包的处理目录中.
[drivercab_expand]
1394bus.sy_
atapi.sy_
usbehci.sy_
usbhub.sy_
usbstor.sy_


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[drivercab_move]

这个区段下的条目是那些只存在于驱动包中的文件列表. (Driver & SPx)

这些文件将被移动到临时文件夹中, 当更新驱动包的时候, 这些文件将被添加到驱动包中.

这些在整合包中时并没有被压缩, 当它们被移动到驱动包中之后才会被压缩.
代码:
;以下文件只存在于驱动包中
;更新驱动包时, 它们将会被移动到驱动包的处理目录中.
[drivercab_move]
plotter.dll
plotui.dll
unidrv.dll
unidrvui.dll
unires.dll
wzcsapi.dll
wzcsvc.dll


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[dupedrivers]

目前这个区段的功能还不能受到正确的支持. 有些文件同时存在于驱动包 (driver.cab, spx.cab) 和 i386 文件夹中, 它实际上是用于移除存在于驱动包中的重复文件的..

==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[obsolete]
这个区段是用于告诉整合程序移除 svcpack.inf 中的对应条目, 以尽量避免造成修补程序包之间的冲突.
代码:
;这个区段包含了禁止安装的修补程序包, 以尽量避免冲突
[obsolete]
KB319740.cat
KB842520.cat
KB867795.cat
KB901026.cat
KB901214.cat
scripten.cat


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[ExtraFileEdits] 目前仅受 RyanVM Integrator 支持.

[ExtraFileEdits] 区段目前仅受 RyanVM integrator 支持. 因此, 你不能在用于 nLite 的整合包中使用它. 但是它所能做的是允许你编辑一些本不可能编辑的东西.
比如下面这个就是向 svcpack.inf 的 [setuphotfixestorun] 区段下添加一些东西:
代码:
rvmtemp\svcpack.inf|[setuphotfixestorun]|[setuphotfixestorun]filetoadd.exe|1


总的来说... 你应当首先指定 rvmtemp 文件夹中的 "rvmtemp\svcpack.inf" 文件, 因为这个svcpack.inf 是用于编辑的. RyanVM integrator 所能编辑的文件一般都得在 rvmtemp 文件夹中.

然后添加一个 "|" 做为分隔符.

接着输入你要在 rvmtemp\svcpack.inf 文件中查找的文本. (无论何时何地你所输入的 都代表着跳到这个区段的下一行.)

然后是另一个 |

接着你输入想要替换的文件. 这就是为什么我要输入 [setuphotfixestorun]filetoadd.exe
它实际上是写入了:
[setuphotfixestorun]
filetoadd.exe

然后是另一个 |

最后应当输入你要改变多少个实例. 如果在这个文件中多次找到了这部分文本, 那么整合程序就会按照你输入的次数进行替换. 如果你在这里放置的是 0, 那么整合程序将会改变所有发现的实例.
代码:
[ExtraFileEdits]
;文件名|将被替换的文本|用于替换的文本|替换次数
; 代表换行.
;例如 COMPDATA\3com.txt|Microsoft|Siginet|2
rvmtemp\svcpack.inf|[setuphotfixestorun]|[setuphotfixestorun]filetoadd.exe|1


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

* RyanVM Integrator v1.0 RC13 新添的定义*
[obsolete_files] 目前仅受 RyanVM Integrator 支持.

如果你发布了新版本的整合包, 并想删除 i386 目录中的某些旧版本文件, 那么就能用到这个定义了. 它会按照下面的列表删掉指定文件, 并且会把 dosnet.inf 和 txtsetup.sif 中的相关文件定义删掉.

第一步: 删掉 i386 文件夹中的相应文件.
第二步: 删掉 dosnet.inf 中的文件定义:
d1,yourfile.ext

第三步: 删掉 txtsetup.sif 中[SourceDisksFiles] 区段下的文件定义:
wmp10.cab =
代码:
[obsolete_files]
HashTab_Addons.inf
HashTab.dll


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

* RyanVM Integrator v1.0 RC13 新添的定义*
[old_sysoc] 目前仅受 RyanVM Integrator 支持.

主要用于删除 Sysoc.inf 中 [Components] 区段下的条目.
如果你想删除 Sysoc.inf 中的以下条目:
WMP10Files=ocgen.dll,OcEntry,wmp10.inf,HIDE,7
那么就应当使用以下代码.
代码:
[old_sysoc]
WMP10Files


==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

* RyanVM Integrator v1.0 RC13 新添的定义*
[removable_cats] 目前仅受 RyanVM Integrator 支持.

这里列出可被安全移除的 .Cat 安全编录, 这样你就能选择整合程序的 "Remove .cat Files" 的选项了.
代码:
[removable_cats]
KB873339.ca_
KB887472.ca_
KB887710.ca_
KB887742.ca_
级别: 光盘学士
发帖
5508
飞翔币
246
威望
2321
飞扬币
41697
信誉值
0

只看该作者 5 发表于: 2006-10-21
好多是看不明啊
:P
级别: 光盘中级
发帖
876
飞翔币
335
威望
221
飞扬币
15862
信誉值
0
只看该作者 6 发表于: 2006-10-23
看不明白,因为不懂编程,支持一下了:@
Qyl
级别: *
发帖
*
飞翔币
*
威望
*
飞扬币
0
信誉值
0
只看该作者 7 发表于: 2006-10-30
楼主强人!谢谢!