- 浏览: 308928 次
- 性别:
- 来自: 北京
最新评论
-
sunshine_bean:
多谢,帮了大忙
shell批处理中利用vi设置文件的fileformat -
2047699523:
Java压缩图片util,可等比例宽高不失真压缩,也可直接指定 ...
java 图片压缩 -
单证员:
这是几种压缩方案的一种,不存在哪个是对的哪个是错的。
java 图片压缩 -
ahcr1026212:
...
Flex DataGrid 可编辑 -
o0虫子0o:
我想问问你的注册做好没?denger写的cas的文章我都看了, ...
关于CAS实现单点登录的思考
最近要在web中播放视频,但下端厂商不给提供CAB包,只提供一堆dll和ocx,无奈只有自己打了,难点在哪儿?编写INF文件上。摸爬滚打,找了一天,终于解决了,现在分享一篇INF文件介绍的文章。
原文地址:http://blog.csdn.net/shanhe/archive/2004/12/25/229368.aspx
INF文件必须包含以下规则:
节(Sections)开始于由中括号([])扩起来的节名
必须包含版本信息节以表明自己属于win95还是winnt4格式。
值(Value)由%strkey%替代的表达式字符串表达组成,strkey必须在strings节中定义。如果出现%,则用%%替代。
Setup程序使用以下各节:
[Version] 必须包含在INF文件中,表明inf文件格式
[Version]
Signature="signature-name"
Class=class-name
ClassGUID=GUID
Provider=INF-creator
LayoutFile=filename.inf[,filename.inf]...
Signature-name
参数可以取值 $Windows NT$, $Chicago$, or $Windows 95$(引号括起来).如果不是以上这些字符串,则不被认可为inf文件。 (特别注意!)
Class-name
此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.
GUID
此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.
INF-creator
标示INF的创建者. 典型的情况,此值为inf文件的创建者所在组织
filename.inf
INF文件必须包含SourceDisksFiles 和 SourceDisksNames 节。这些文件的描述文件通常命名为 LAYOUT.INF. 如果文件名不是特别指定,SourceDisksNames 和 SourceDisksFiles 必须出现在当前inf文件中
以下为典型的例子:
[Version]
Signature="$Windows NT$"
Class=Mouse
ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%
LayoutFile=layout.inf
[Strings]
Provider="Corporation X"
[Install] 此节指定包含的安装指令节,每一个条目将会成为一节
[install-section-name]
LogConfig=log-config-section-name[,log-config-section-name]...
Copyfiles=file-list-section[,file-list-section]...
Renfiles=file-list-section[,file-list-section]...
Delfiles=file-list-section[,file-list-section]...
UpdateInis=update-ini-section[,update-ini-section]...
UpdateIniFields=update-inifields-section[,update-inifields-section]...
AddReg=add-registry-section[,add-registry-section]...
DelReg=del-registry-section[,del-registry-section]...
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
以上各条目并非全部必须。节名必须为可见字符。每个条目包含一到多个节。第一个命名之后的所有命名必须以,引导。条目指定了必须出现在INF文件中的各节。CopyFiles则可例外(如果没有任何文件被拷贝)。
如果安装驱动程序,仅仅使用LogConfig条目。详见DDK Programmer's Guide.
CopyFiles条目中可以包含特殊字符@ 以直接拷贝一个单一文件。文件将拷贝到DefaultDestDir, DestinationDirs节包含了DefaultDestDir的描述。如例子:
[MyInstall]
CopyFiles= @MyFile.exe
此文件将拷贝到缺省目标目录。
为适应不同平台,可以在install节后加上不同的后缀。可以出现defaultInstall.nt这样的节名。install-section-name可选的后缀:
Extension Platform
.Win Windows 95
.NT Windows NT (all platforms)
.NTx86 Windows NT (x86 only)
.NTMIPS Windows NT (MIPS only)
.NTAlpha Windows NT (Alpha only)
.NTPPC Windows NT (PowerPC only)
以下例子展示了如何出现两个copyfiles节:
[Ser_Inst]
CopyFiles=Ser_CopyFiles, mouclass_CopyFiles
[Ser_CopyFiles]
sermouse.sys
[mouclass_CopyFiles]
mouclass.sys
[Add Registry] 描述如何增加注册表项目。add-registry-section 节名必须处现在install节中的 AddReg 条目中。
[add-registry-section]
reg-root-string, [subkey], [value-name], [flags], [value]
[reg-root-string, [subkey], [value-name], [flags], [value]]
reg-root-string 注册表的根名:
HKCR HKEY_CLASSES_ROOT.
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKU HKEY_USERS.
HKR 相关于 SetupInstallFromInfSection.节中指定的值
subkey
可选,例如 key1\key2\key3....
value-name
可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值
flag 值类型的标示
Value Meaning
FLG_ADDREG_BINVALUETYPE The value is "raw" data.
FLG_ADDREG_NOCLOBBER 如果注册表中出现不要覆盖此值.
FLG_ADDREG_DELVAL 从注册表中删除此键
FLG_ADDREG_APPEND 追加一个值到已存值中,仅仅支持REG_MULTI_SZ 值
FLG_ADDREG_TYPE_MASK Mask.
FLG_ADDREG_TYPE_SZ REG_SZ类型
FLG_ADDREG_TYPE_MULTI_SZ REG_MULTI_SZ.
FLG_ADDREG_TYPE_EXPAND_SZ REG_EXPAND_SZ.
FLG_ADDREG_TYPE_BINARY REG_BINARY.
FLG_ADDREG_TYPE_DWORD REG_DWORD.
FLG_ADDREG_TYPE_NONE REG_NONE.
Windows 95 安装程序将视扩展数据类型为REG_SZ or REG_BINARY.
value
可选. 16进值或者字符串
[CopyFiles] 此类节可以有多个,定义于install节中。
[file-list-section]
destination-file-name[,source-file-name][,temporary-file-name][,flag]
[destination-file-name[,source-file-name][,temporary-file-name]][,flag]
.
destination-file-name
目标文件名,如果没有给出源文件名,那么此名也是源文件名.
source-file-name
源文件名,如果没有给出目标文件名,那么此名也是目标文件名.
temporary-file-name
被忽略,setup函数自动处理临时文件.
flag
可选,用于控制文件如何被拷贝。你必须配置实际值
COPYFLG_WARN_IF_SKIP (0x00000001)
如果用户试图在发生一个错误后跳过将显示警告信息
COPYFLG_NOSKIP (0x00000002)
不允许用户跳过拷贝此文件
COPYFLG_NOVERSIONCHECK (0x00000004)
如果文件存在于目标目录,忽略
COPYFLG_FORCE_FILE_IN_USE (0x00000008)
替换被使用得文件?,当拷贝时文件被使用
COPYFLG_NO_OVERWRITE (0x00000010)
不覆盖目标文件中已存文件
COPYFLG_NO_VERSION_DIALOG (0x00000020)
如果目标文件已存且新则不覆盖也不出现对话框
COPYFLG_REPLACEONLY (0x00000040)
替换目标文件
[delete Registry] 描述如何增加注册表项目。del-registry-section 节名必须处现在install节中的 DelReg 条目中。
[del-registry-section]
reg-root-string, [subkey], [value-name], [flags], [value]
[reg-root-string, [subkey], [value-name], [flags], [value]]
reg-root-string 注册表的根名:
HKCR HKEY_CLASSES_ROOT.
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKU HKEY_USERS.
HKR 相关于 SetupInstallFromInfSection.节中指定的值
subkey
value-name
可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值
[Delete Files] 此节指定需要被删除的文件,节名必须出现在install中的delfiles条目中
[file-list-section]
file-name[,,,flag]
flag
可选。
DELFLG_IN_USE (0x00000001)
当因为文件正被使用,SetupCommitFileQueue 取消, 将排队在系统重新启动时候被删除。
如果不使用此值,则安装时候被使用的文件不会被delete files指定节删除
DELFLG_IN_USE1 (0x00010000)
高字节版本的DELFLG_IN_USE. Setting DELFLG_IN_USE1 差别在于同样可适用于Copyfiles节和delete Files节即使COPYFLG_WARN_IF_SKIP 标志被使用。
[INI File to Registry] 此节指示那些ini文件中的条目将对应到注册表。
[ini-to-registry-section]
ini-file, ini-section, [ini-key],reg-root-string,subkey[,flags]
ini-file
ini文件名.
ini-section
ini文件的节
ini-key
条目
flags
指示当注册表存在对应的注册表项目是否是否覆盖旧值。
Bit value
0 0 缺省,不删除ini文件项目,当ini转移到注册表后
0 1 删除ini文件中的项目,当ini转移到注册表后
1 0 缺省,当注册表存在此子项,则不覆盖
1 1 覆盖
[Rename Files] 此类型节列出那些将样改名的文件。此节名必须出现在install节中
[rename-files-section-name]
new-file-name,old-file-name
new-file-name
新文件名
old-file-name
原来的文件名。此参数必须定义于 SourceDisksFiles 节中。
[Update INI Fields] 此节替换、增加、删除指定ini文件的条目。此节名必须存在于install节中。
[update-inifields-section-name]
ini-file,ini-section,profile-name,[old-field],[new-field],[flags]
参数说明见上
[Update INI File] 此节删除、替换或者新增INI 的项目. 节名必须处现在install节中的 UpdateInis 条目中
update-ini-section-name]
ini-file,ini-section,[old-ini-entry],[new-ini-entry],[flags]
ini-file
包含将要改变的条目的ini文件。
ini-section
节名
old-ini-entry
可选的,通常为key=value形式
new-ini-entry
可选。通常来自key=value. key 或者value可以为可替换的字符串。
flags
可选命令标志.
Value Meaning
0 缺省。如果old-ini-entry key 出现在INI file 条目中, 将被new-ini-entry替换。 值会被忽略,只要key匹配即可。为无条件增加新条目到ini文件,可设置 old-ini-entry为NULL。 为无条件从ini文件中删除old-ini-entry from,设置 new-ini-entry 为NULL。
1 如果 old-ini-entry 的key 和value 已经存在于 INI 文件,将被 new-ini-entry替换。 old-ini-entry 参数的key和value都必须匹配
2 如果old-ini-entry 参数没有出现在INI 文件中, 将不进行任何替换
若 old-ini-entry 的key存在于INI 文件且new-ini-entry的key存在于 INI 文件, INI 文件中匹配的 new-ini-entry 的key参数被删除, old-ini-entry 的key匹配参数被替换
3 类似2,但是,例外情况为:old-ini-entry 参数匹配基于key和value,并不限于key
可以使用通配符 (*)指代key和value的一部分和全部
ini文件名可以为字符串或者字符键。即%strkey% ,此 strkey 定义于[Strings]节,且必须是一个合法文件名。
Ini文件明应当包含目录,可以是直接目录,也可以是特定目录标示符。
可以拥有%dirid% 指定目录,dirid指定于 SetupSetDirectoryId节中. 当时用目录标示符,你应当使用反斜线号于一个目录路径中。举例:,你可以使用 %11%\card.ini 表示 CARD.INI 存在于System32 目录中。
以下为例子:
%11%\sample.ini, Section1,, Value1=2 ; 新增一个条目
%11%\sample.ini, Section2, Value3=*, ; 删除老条目
%11%\sample.ini, Section4, Value5=1, Value5=4 ;替换老条目
[Services]条目 此节条目列出增加和删除的服务列表。
[install-section-name.Services]
AddService=ServiceName,flag,service-install-section[,event-log-install-section]
DelService=ServiceName
ServiceName
将要安装/删除的服务名
flag
指定将如何增加服务。此参数仅用于AddService 键,取值为:
SPSVCINST_TAGTOFRONT (0x1)
将服务标签题见到服务所在组的前列
SPSVCINST_ASSOCSERVICE (0x2)
此增加的服务关联的服务.
service-install-section
服务安装节
event-log-install-section
时间记录安装节。
以下为例子:
[Ser_Inst.Services]
AddService = sermouse, 0x00000002, sermouse_Service_Inst, sermouse_EventLog_Inst ; Port Driver
AddService = mouclass,, mouclass_Service_Inst, mouclass_EventLog_Inst
; Class Driver
[Service Install] 此节列出将要安装的每一个服务信息
[install-section-name_ServiceInstallSection]
DisplayName=[name]
ServiceType=type-code
StartType=start-code
ErrorControl=error-control-level
ServiceBinary=path-to-service
LoadOrderGroup=[load-order-group-name]
Dependencies=+depend-on-group-name[[,depend-on-service-name]...]
StartName=[driver-object-name]
name
可选,友好的服务名称
type-code
驱动类型。为任何被theCreateService 函数认可的参数。
start-code
何时启动驱动程序。可为:
SERVICE_BOOT_START (0x0)
由操作系统loader启动。使用此值仅用于操作系统基本服务。
SERVICE_SYSTEM_START (0x1)
操作系统初始化式启动。
SERVICE_AUTO_START (0x2)
SCM在系统启动期间启动
SERVICE_DEMAND_START (0x3)
SCM根据需要启动
SERVICE_DISABLED (0x4)
此服务不可被启动
error-control-level
指定错误控制级别。
CRITICAL (0x3)
如果驱动装载失败,启动失败。如果启动不是在 “最后一次正确(LastKnownGood.)”控制集,切换到LastKnownGood。如果启动试图用于 LastKnownGood, 运行故障检查例程
SEVERE (0x2)
如果启动不是用于 LastKnownGood , 切换到LastKnownGood。如果启动试图LastKnownGood, 发生错误时继续启动。
NORMAL (0x1)
若初始化时失败,启动将继续,但显示警告信息
IGNORE (0x0)
若初始化时失败,启动将继续,无警告信息
path
二进制文件路径
load-order-group-name
可选. 指示服务处在的服务组中的次序: pointer, port, primary disk, and so forth.
+depend-on-group-name
可选,服务依赖的服务组,服务仅当该组的最后一个服务都启动后才启动
depend-on-service-name
可选。依赖的服务。
driver-object-name
可选。如果类型属于 Kernel driver或者file system driver,,此名用于I/O管理器装载的名称
例子:
[mouclass_Service_Inst]
DisplayName = %mouclass.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 1 ; SERVICE_SYSTEM_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\mouclass.sys
LoadOrderGroup = Pointer Class
[DestinationDirs] 此节用于指定(copy file ,rename file等节中的目标目录)
[DestinationDirs]
file-list-section=drid[,subdir]
. .
[DefaultDestDir=drid[,subdir]]
file-list-section
Copy Files, Rename Files, 或者Delete Files 节名. drid
目录标示(DRID)。 安装程序在安装期间替换一个 DIRID采用实际的目录
DIRID %dirid% 为预先定义的目录
DIRID 可为以下值:
-01,0xffff 目录
01 SourceDrive:\path.
10 Windows directory.
11 System directory. (%windir%\system on Windows 95, %windir%\system32 on Windows NT)
12 Drivers directory.(%windir%\system32\drivers on Windows NT)
17 INF 文件目录
18 help目录
20 Fonts directory.
21 察看器目录
24 应用程序目录
25 共享目录Shared directory.
30 启动驱动器的根目录Root directory of the boot drive.
50 %windir%\system
51 假脱机目录Spool directory.
52 Spool drivers directory.
53 用户 Profile 目录
54 ntldr or OSLOADER.EXE 所在目录
subdir
子目录名
可选项 DefaultDestDir 提供缺省的目标目录。如果DefaultDestDir 未用于 DestinationDirs 节,缺省的目录设为 drid_system.
[SourceDisksFiles] 此节指定源安装盘上的文件
为了允许多操作系统分发源文件,你可构造针对特定平台的SourceDisksFiles 节举例来讲, 在 MIPS 平台上,所有安装功能在用到 SourceDisksFiles 节将首先查找 SourceDisksFiles.Mips 节。 如果安装功能未找到 SourceDisksFiles.Mips 节, 或者某个特定行未能在那里找到,安装功能将使用 SourceDisksFiles 节。此行为直接或间接影响安装功能处理 SourceDisksFiles节作为其进程的一部分。
大小写不敏感的前缀可为:
alpha
mips
ppc
x86
[SourceDisksFiles]
filename=disk-number[,subdir][,size]
filename
在源此盘上的文件名
disk-number
第几号源盘包含此文件。大于等于1,且定义于 SourceDisksNames 节
subdir
可选参数。在源盘上的子目录,缺省为源盘的跟目录
size
可选参数,文件的压缩尺寸
[SourceDisksFiles]
SRS01.x86 = 1 ;源文件SRS01.x86存在于安装盘一号盘的根目录
[SourceDisksNames] 指示源文件的磁盘名称
为了允许多操作系统分发源文件,你可构造针对特定平台的SourceDisksNames节举例来讲, 在 MIPS 平台上,所有安装功能在用到 SourceDisksNames节将首先查找 SourceDisksNames.Mips 节。 如果安装功能未找到 SourceDisksNames.Mips 节, 或者某个特定行未能在那里找到,安装功能将使用 SourceDisksNames节。此行为直接或间接影响安装功能处理 SourceDisksNames节作为其进程的一部分。
大小写不敏感的前缀可为:
alpha
mips
ppc
x86
[SourceDisksNames[.platform]]
disk-ordinal="disk-description"[,[disk-label],[unused,path]
.
platform
指示源文件应用的平台指示符。
disk-ordinal
磁盘序号
disk-description
“”包含的字符串,用于标示磁盘。
disk-label
磁盘卷标
unused
保留未用
path
可选参数,源文件的绝对路径,如果未用,则表示示根目录
如下例子中, write.exe 所有平台都一样,且存在于源盘1的\common 目录。圆盘1将所有平台都一致的文件存在于\common目录中。 CMD.EXE 文件特定于平台,磁盘2指示安装功能针对每一个平台的特定目录。HALNECMP.DLL 文件特定于MIPS 平台。
[SourceDisksNames]
1 = "Windows NT CD-ROM", Instd1,, \common
[SourceDisksNames.Alpha]
2 = "Windows NT CD-ROM", Instd1,, \alpha
[SourceDisksNames.Mips]
2 = "Windows NT CD-ROM", Instd1,, \mips
[SourceDisksNames.x86]
2 = "Windows NT CD-ROM", Instd1,, \x86
[SourceDisksNames.ppc]
2 = "Windows NT CD-ROM", Instd1,, \ppc
[SourceDisksFiles]
write.exe = 1
cmd.exe = 2
[SourceDisksFiles.Mips]
halnecmp.dll = 2
[EventLog Install] 该节往注册表中加入事件消息文件,也可利用此节移除事件消息文件。
[install-section-name_EventLogInstallSection]
AddReg=add-registry-section
DelReg=del-registry-section
add-registry-section
del-registry-section
事件消息节名
AddReg 指示哪节将作为增加事件的注册表项
DelReg 指示删除事件项
以下为典型的 EventLog 安装节:
[sermouse_EventLog_Inst]
AddReg=sermouse_EventLog_AddReg
[sermouse_EventLog_AddReg]
HKR,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll\;%%SystemRoot%%\System32\drivers\sermouse.sys"
HKR,,TypesSupported,0x00010001,7
[Strings] 该节定义了1个或多个字符串关键字. 一个字符串key 展开一个可打印字符串
可以有针对特定语言的String节
[Strings[.langid]]
strings-key=value
langid
可选的指示string节所属语言的语言标示符. 举例, U.S. English 是 0409 以及Standard French 是 040c.
strings-key
由字符和数字组成的唯一名符
value
展开后的字符串内容
例子:
[Strings]
String0="Corporation X"
String1="Corporation X"
String2="CS2590 SCSI Adapter"
特定语言的例子:
[Strings.0409]
; American English strings
S1 = "Hello"
[Strings.0009]
; British English strings
; Note that 0009 is used instead of 0809 to make this the default
; for English languages other than U.S. English.
S1 = "Greetings"
[Strings]
; French strings
; Not specifying a langid makes this the default
S1 = "Bonjour"
注释
尽管此节通常处于inf文件的最后一节,但是定义的字符串Key可用于inf文件任何位置。安装程序将展开字符串
如果用到%,请使用%%。
Windows 95: 不可包含strings节,不支持多语言.
相关推荐
本人学习USB过程中总结的INF文件各个字段含义及整个INF文件的编写过程,给需要学习的朋友做参考。
编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查。 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓名,学号进行查询。 要求列表输出...
将template文件夹复制到测试用服务器的 /movietimes/src/main/webapp/WEB-INF 目录下 > 在movieTimes文件夹根目录下执行以下命令: > jetty:run > 在浏览器中打开 http://localhost:8080/ ## 目录结构 - /...
NSIS语言里怎样安装一个.inf文件? 如果要关联某个文件给程序应该怎么做? 如何避免显示解压缩进度框? 关于检测操作系统的问题 在结束页面添加运行程序选项 NSIS的botton二选一如何实现? NSIS灵活应用用逻辑...
一.项目运行环境:Eclipse/IDEA + Tomcat 二. 项目组件:JSP+JAVABEAN+MYS + Tomcat+Java 三....1. 基于 JSP+JAVABEAN+MYSQL的新闻...(3)本程序的类文件在src目录下,发布的时候放在resin的发布目录的WEB-INF\classes下;
如果要创建一张可自动运行的光盘,就必须编写一个作为自动运行菜单的程序,并编辑 autorun.inf 文件。 软件功能使用 AutoPlay Menu Builder,可以方便快捷地创建自动运行菜单。无需任何编程知识,只要通过点击和...
如果要创建一张可自动运行的光盘,就必须编写一个作为自动运行菜单的程序,并编辑 autorun.inf 文件。 软件功能使用 AutoPlay Menu Builder,可以方便快捷地创建自动运行菜单。无需任何编程知识,只要通过点击和...
写好上述配置文件后,可以在controller目录下新建TestController.java文件和WEB-INF/jsp/test.jsp,启动容器测试是否成功。 ## 二、DAO层代码完成与测试 这一章主要完成数据库底层的CRUD代码实现与测试工作. **1....
Ant的构件文件是基于XML编写的,默认名称为build.xml。为了更清楚的了解Ant,在这里编写一个简单的Ant程序,用来展现Ant的功能,让读者对Ant有一个初步的了解。首先在E盘下建立一个build.xml文件,内容如下: ...
5、把WEB-INF文件夹下的web.xml文件中的一下部分粘贴到网站根目录的WEB-INF的web.xml中; <display-name>defaultroot <servlet-name>debugjsp <description>Added to compile JSPs with debug info ...
WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。 本文后面的章节将从数据持久层->业务层->Web层的...
% 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。 ' (a)定义字符串用 (b)向量或矩阵的共轭转置符 .' 一般转置符 ... 表示MATLAB表达式继续到下一行,增强代码...
Ant功能强大的地方在于,程序员不仅能通过编写Ant的脚本(build.xml)来进行各种文件部署管理操作,还可以通过调用Ant的丰富的API,甚至扩展Ant的API进行编程。 1. 目录操作: 1) 创建目录 1. Project prj=new ...
15.2 编写INF文件 466 15.2.1 INF文件格式 466 15.2.2 Install节 468 15.2.3 CopyFiles和AddReg等安装过程 468 15.2.4 源路径和目的路径 469 15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 ...
于是编写了一个辅助删除U盘里病毒的批处理文件,代码只有两行:一行用来显示U盘中所有的隐藏对象;另一行用来创建一个空的autorun.inf文件夹。后来发展成一个可以自动清理U盘中Auto病毒的工具。2009年用Visual ...
15.2 编写INF文件 466 15.2.1 INF文件格式 466 15.2.2 Install节 468 15.2.3 CopyFiles和AddReg等安装过程 468 15.2.4 源路径和目的路径 469 15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 ...