编写INF文件进行文件安装(下)--转

作者在 2007-03-29 19:50:00 发布以下内容

[Version]

任何INF文件的第一个小节均是[Version],又称为INF文件头。一般有如下语句:

[Version]
Signature=“$Chicago$”
LayoutFile=filename.inf

其中,Signature的值应为“$Chicago$”“$Windows 95$”“$Windows NT$”中的一个(不区分大小写),否则Windows不接受该文件为INF文件,内建的动作也就不会起作用。

filename.inf文件包含安装组件必需的安装布局信息(源盘和源文件),该行是可选的,如果没有提供布局信息文件,则在INF文件内必须包含[SourceDisksNames][SourceDisksFiles]节。

[Install]

[Install]节提供了一个INF文件安装过程的总览,它识别文件内其他包含安装信息节的详细动作,是Windows内建安装函数识别安装过程和内容的真正入口,用户所有的安装目的在这里表现。那些与[Install]节内容不存在关联的节的动作将被忽略。

[Install]节分[DefaultInstall][OtherInstall]两类,它们使用相同的格式。[DefaultInstall]节节名“DefaultInstall”如前面表格内容所述被显式地在注册表中指定,大小写不敏感。该节也是系统获取INF文件中安装信息的首要入口,当用户右击

编程相关 | 阅读 2796 次
文章评论,共2条
wfpb(作者)
2007-03-29 20:15
1
[DestinationDirs]节 

[DestinationDirs]节指定拷贝、重命名或删除文件三类动作的目的目录路径,拷贝、重命名或删除操作对象即文件的列表在专门的节中列出,这些节名最初在“Install”的CopyFiles、RenFiles或DelFiles入口中明确。 
[DestinationDirs]节内语句的语法为: 
file-list-section=LDID,[Subdir] 
[DefaultDestDir=LDID,[Subdir]] 
其中file-list-section为必选项,是CopyFiles、RenFiles或DelFiles入口内列出的节名。 
LDID(Logical disk identifier)为必选项,是逻辑盘标识码,代表各种系统或实时安装路径,逻辑盘标识码可看做一种宏字符串,随系统或实时安装路径的不同而相应改变。逻辑盘标识码机制确保了安装的灵活性和正确性,该标识码可为下表所述值之一: 
Subdir为可选项,指定LDID目录下的子目录名。 
DefaultDestDir为可选项,指定CopyFiles、RenFiles或DelFiles入口的缺省操作目录。

[SourceDisksNames]节 

[SourceDisksNames]节罗列源文件所在盘符序列码、盘描述符、盘卷标号和盘序列号。 
[SourceDisksNames]节内语句的语法为: 
disk-ordinal=“disk-description”,disk-label,disk-serial-number 
其中disk-ordinal为必选项,是盘符序列码,标识一个源盘,具有惟一性,一般可设置为从1开始递增的整数,0不是一个有效的盘符序列码。当存在多个源盘时,盘符序列码之间不能重复。 
disk-description为必选项,是盘描述符,用双引号括起的字符串或字符串宏描述盘的内容或目的。安装引擎将该字符串显示在对话框内以提示用户。 
disk-label为源盘的卷标识。 
disk-serial-number未使用,但必须被设置为0。 

[SourceDisksFiles]节 

[SourceDisksFiles]节指定安装时使用的源文件和盘符序列码、盘描述符。 [SourceDisksFiles]节内语句的语法为: 
file-name=disk-number[,subdir] [,file-size] 
其中file-name为必选项,是源盘上文件的名称。 
disk-number是包含file-name指定文件所在源盘的盘符序列码,该盘符序列码需在[SourceDisksNames]节中列出,并大于或等于1。 
Subdir为可选项,指定文件所在源盘的子目录,如省略则源盘为缺省安装路径。 
file-size为可选项,表明文件的大小,以字节为单位。 

[Strings]节 

[Strings]节定义一个或多个本地化字符串,或称字符串宏。尽管[Strings]节一般被放置在INF文件的末尾,字符串宏可在INF文件任何地方使用,安装引擎解释、展开字符串宏为给定的长字符串并做进一步处理。字符串宏在使用时需用百分号(%)括起。[Strings]节内语句的语法为: 
strings-key=value 
其中strings-key为由字母或数字等可打印字符组成的宏名。 
Value为被双引号括起的长字符串,字符串可由字母、数字或其他可打印字符组成。
wfpb(作者)
2007-03-29 20:17
2
一个具体的安装实例 

本文接下来列举一个名为“Mysetup.inf”的安装信息文件实例,以便读者熟悉INF文件语法,领略INF文件的安装效果。该“Mysetup.inf”文件可完成如下的安装任务:假设应用程序有“MyApp.exe”、“MyApp.hlp”、“MyApp.dll”等几个需安装到应用程序主目录的文件,有“Ass_1.dll”、“Ass_2.dll”等几个需安装到Windows\System子目录的文件,要求将各文件按预定目录位置拷贝到位,其中应用程序主目录可在安装过程中选定,同时,在“开始>程序”下面建立名为“我的程序组”的程序组,在该程序组下建立名为“我的应用程序”、“我的应用程序帮助”的两个程序项,分别与“MyApp.exe”和“MyApp.hlp”文件关联。 
完成上述安装任务的“Mysetup.inf”文件内容如下: 

[Version] 
signature=“$chicago$” 
[AdvSetup] 
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce\Setup,“INF制作安装程序”,,“RunDll32.exe“%01%”\advpack.dll,LaunchINFSection Mysetup.inf,DefaultInstall2” 
[DefaultInstallX] 
[DefaultInstall] 
AddReg=AdvSetup 
[DefaultInstall2] 
CopyFiles = 拷贝到用户指定目录,拷贝到Windows\System子目录 ,…… 
CustomDestination=My-path 
UpdateInis = 加exe文件快捷方式,加hlp文件快捷方式,…… 
[SourceDisksNames] 
1=“文件所在目录”,,0 
[SourceDisksFiles] 
MyApp.exe.exe=1,,1021 
MyApp.dll=1,,1021 
MyApp.hlp=1,,1021 
Ass_1.dll=1,,1021 
Ass_2.dll=1,,1021 
[DestinationDirs] 
拷贝到用户指定目录 = 49000 
拷贝到Windows\System子目录 = 11 
[My-path] 
49000,49001,49002,49003=index-again,1 
[index-again] 
“”,“”,“”,,““默认安装到“C:\MyApp”目录,可选择””,“%30%\MyApp” 
[拷贝到用户指定目录] 
MyApp.exe 
MyApp.dll 
MyApp.hlp 
[拷贝到Windows\System子目录] 
Ass_1.dll 
Ass_2.dll 
[加exe文件快捷方式] 
setup.ini, progman.groups,, “group1=““我的程序组””” 
setup.ini, group1,,“““我的应用程序””,““““““%49000%\MyApp.exe””””””,,,,,““MyApp.exe””” 
[加hlp文件快捷方式] 
setup.ini, progman.groups,, “group1=““我的程序组””” 
setup.ini, group1,,“““我的应用程序帮助””,““““““%49000%\MyApp.hlp””””””,,,,,““MyApp.hlp””” 
读者会注意到上面的文件内许多键名使用了中文,这是因为INF格式文件支持中文提示及中文键名。这些中文键名不仅充当功能键起索引的作用,还形象化地标识了键的前后对应关系,增强了文件内容的可读性,有利于后续更改、维护。 

安装时,首先确保应用程序的所有待安装文件和“Mysetup.inf” 文件处在同一个目录下,右击“Mysetup.inf”文件选“安装”或按Shift键的同时按功能键F10。待目录选择对话框出现,点击“浏览”按钮或直接在文本编辑框内键入目录名称后,屏幕显示文件安装拷贝和更新快捷方式进度,最终结束。 

打开资源管理器,就可查看到所有文件均已拷贝到指定目录位置。点击“开始>程序”,可以找到“我的程序组”程序组及下属的“我的应用程序”、“我的应用程序帮助”程序项,选中程序项均能激活对应文件,说明文件安装及快捷方式关联均告成功。 

小 结 

本文介绍的文件安装方法适合于大众,读者可熟悉语法、参考例子、效仿编写,制作出自己的安装信息文件。
游客请输入验证码