ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:20.68KB ,
资源ID:4929163      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4929163.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(INF文件详解.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

INF文件详解.docx

1、INF文件详解INF文件详解 - 系统知识2007-05-31版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 安装信息(Setup Information)文件是Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件与Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格免费,透明度高,安装程序小,可完全定制。INF文件是文本文件,可在任何文本编辑器内查看、创建

2、、修改,普通用户使用Windows系统本身提供的记事本、写字板即可进行文件安装脚本的编写。 INF文件安装动作的触发机制 在文件目录中用鼠标右击INF文件,会显示不同于其他扩展名文件的“安装”菜单。Windows平台在计算机中完成初始安装后,就注册了INF文件的“安装”动作,此“安装”动作关联命令行程序基本形式为: RunDll setupx.dll,InstallHinfSection section reboot-mode inf-name 如笔者目前正在使用的Windows 98系统注册表中,HKEY_CLASSES_ROOTinffileinstall command键的默认值为(in

3、stall即为安装): C:WINDOWSrundll.exe setupx.dll,InstallHinfSection DefaultInstall 132 %1 其中,rundll程序以命令行的形式调用Windows的动态链接库,其命令格式为: rundll.exe 文件名, setupx.dll是安装API(Setup API)函数库,包含了InstallHinfSection、SetupGetInfSections、SetupInstallFromInfSection、SetupPromptForDisk、SetupDiCreateDevRegKey等INF文件内部语法检查、节名搜索

4、、注册键创建等功能函数。setupx.dll与其后的入口点用逗号(,)分开,入口点是大小写敏感的。 Section是INF文件内初始执行节名,首先执行该节内容,默认情况下名称为“DefaultInstall”,系统用户一般不宜对此做任何改动,如被改动,则在后续INF文件的Install节使用相应修改后的名称。 reboot-mode是重启动参数,指示在INF文件执行后对系统的设置进行了改变,操作系统是否重新启动。该参数一般设为132或4,即由安装程序决定是否必须重启动,因为某些设置的改变必须在重启动后才能生效。 inf-name是INF文件的名称,“%1”即为所选中文件本身。 INF文件内部节

5、(Section)的定义 INF文件用特殊的文本文件格式编辑、保存,Windows内建的安装函数遵循既定的语法从INF文件内获取安装信息。INF文件和初始化(或称私有化,Private File)文件相似,采用节(Section)和入口(Entries)的索引机制,节和入口定义了所有操作类型及操作对象。一个INF文件由不同类型的节组成,每类节都有其特殊的目的和不同的实现语法,每节的内容均服务于该节的目的。除了基本的识别INF格式的“Version”节外,INF文件中节的数目和类型没有限制,主要取决于具体安装任务。一个基本的INF文件,一般包含如下几节: 节的名称 节的作用Version INF

6、文件头,提供有效INF文件的版本信息 DefaultInstall 安装包含所关联动作(文件拷贝或删除,注册表键值更新、子键增删等)在INF文件内的节名指针,默认情况下首先执行该节内容 OtherInstall 与DefaultInstall节遵循相同的语法,但必须显式的调用,常被用来定义反安装动作 DestinationDirs 指定罗列于一个节内将被拷贝、删除或重命名的文件在硬盘上的位置 FileCopy/Delete/RenameSection(s) 罗列将被拷贝、删除或重命名的文件 RegistryUpdateSection(s) 指定对注册表键值更新、子键增删等动作 IniFileU

7、pdateSection(s) 指定对ini文件的更新、快捷方式可通过该节进行创建 SourceDisksNames 罗列文件所在盘盘名、盘卷标、盘序列号 SourceDisksFiles 罗列安装时使用的源文件及其所在盘 Strings 罗列本地化字符串(或称宏字符串) 表中黑体节名是保留关键字,名称固定,大小写不敏感,斜体节名名称任意,由INF文件编写者确定。每节的标题字符均用括号()括起。 限于篇幅本文只对黑体节名做进一步的解释。Version节 任何INF文件的第一个小节均是Version,又称为INF文件头。一般有如下语句: VersionSignature=“$Chicago$”

8、LayoutFile=filename.inf 其中,Signature的值应为“$Chicago$”、“$Windows 95$”或“$Windows NT$”中的一个(不区分大小写),否则Windows不接受该文件为INF文件,内建的动作也就不会起作用。 filename.inf文件包含安装组件必需的安装布局信息(源盘和源文件),该行是可选的,如果没有提供布局信息文件,则在INF文件内必须包含SourceDisksNames和SourceDisksFiles节。 Install节 Install节提供了一个INF文件安装过程的总览,它识别文件内其他包含安装信息节的详细动作,是Windows

9、内建安装函数识别安装过程和内容的真正入口,用户所有的安装目的在这里表现。那些与Install节内容不存在关联的节的动作将被忽略。 Install节分DefaultInstall和OtherInstall两类,它们使用相同的格式。DefaultInstall节节名“DefaultInstall”如前面表格内容所述被显式地在注册表中指定,大小写不敏感。该节也是系统获取INF文件中安装信息的首要入口,当用户右击INF文件选“安装”时该节内容被执行。OtherInstall与DefaultInstall节遵循相同的语法,但必须被显式地调用,常被用来定义反安装动作。它们均可包括以下种类的可选入口: Co

10、pyFiles=CopyFiles-section-namefile-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,a

11、dd-registry-section DelReg=del-registry-section,del-registry-section Ini2Reg=ini-to-registry-section,ini-to-registry-section UpdateCfgSys=update-config-section UpdateAutoBat=update-autoexec-section 上面的入口并非都必需,如果需要一个入口,则应该在等号右侧指出存在于该INF文件内的索引节名(不用指出节名的一个特例是CopyFiles入口,可使用“”字符后跟文件名的形式,效果是直接将文件拷贝到Desti

12、nationDirs节所罗列的硬盘目录)。节名需由可打印字符组成,在中文系统平台中,可使用中文字符作为节名,这也是体现INF格式安装本地化的地方,非常直观。每类入口在一个Install节内只能出现一次,第二次及以后出现的同名重复入口将被忽略。每类入口的等号右侧可罗列多个节名,节名之间以逗号分开,以便列举同一类动作的不同作用对象,如删除多个注册表键、拷贝文件到多个目录路径等。 下表是各类入口的动作含义,具体语法本文不做细述: CopyFiles 等号右侧是拷贝文件罗列节节名,将文件拷贝到DestinationDirs节指定的目的地,所有的源文件必须在SourceDisksFiles节列出 Ren

13、Files 重命名文件 DelFiles 删除文件 UpdateInis 安装过程中更新INI初始化文件内容 UpdateIniField 安装过程中更新INI初始化文件值内容 AddReg 增加注册表键或键值 DelReg 删除注册表键或键值 Ini2Reg 用INI文件内容更新注册表 UpdateCfgSys 更新Config.sys文件内的设置 UpdateAutoBat 更新Autoexec.bat文件内的设置 在实际编写INF文件时,注册表根键通常采用缩写方式,如下表: HKCR HKEY_CLASSES_ROOT的简写 HKCU HKEY_CURRENT_USER的简写 HKLM

14、HKEY_LOCAL_MACHINE的简写 HKU HKEY_USERS的简写 HKR 相对键,对于硬件设备驱动程序类安装的 DestinationDirs节 DestinationDirs节指定拷贝、重命名或删除文件三类动作的目的目录路径,拷贝、重命名或删除操作对象即文件的列表在专门的节中列出,这些节名最初在“Install”的CopyFiles、RenFiles或DelFiles入口中明确。 DestinationDirs节内语句的语法为: file-list-section=LDID,Subdir DefaultDestDir=LDID,Subdir 其中file-list-sectio

15、n为必选项,是CopyFiles、RenFiles或DelFiles入口内列出的节名。 LDID(Logical disk identifier)为必选项,是逻辑盘标识码,代表各种系统或实时安装路径,逻辑盘标识码可看做一种宏字符串,随系统或实时安装路径的不同而相应改变。逻辑盘标识码机制确保了安装的灵活性和正确性,该标识码可为下表所述值之一: Subdir为可选项,指定LDID目录下的子目录名。 DefaultDestDir为可选项,指定CopyFiles、RenFiles或DelFiles入口的缺省操作目录。SourceDisksNames节 SourceDisksNames节罗列源文件所在盘

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

17、erial-number未使用,但必须被设置为0。 SourceDisksFiles节 SourceDisksFiles节指定安装时使用的源文件和盘符序列码、盘描述符。 SourceDisksFiles节内语句的语法为: file-name=disk-number,subdir ,file-size 其中file-name为必选项,是源盘上文件的名称。 disk-number是包含file-name指定文件所在源盘的盘符序列码,该盘符序列码需在SourceDisksNames节中列出,并大于或等于1。 Subdir为可选项,指定文件所在源盘的子目录,如省略则源盘为缺省安装路径。 file-si

18、ze为可选项,表明文件的大小,以字节为单位。 Strings节 Strings节定义一个或多个本地化字符串,或称字符串宏。尽管Strings节一般被放置在INF文件的末尾,字符串宏可在INF文件任何地方使用,安装引擎解释、展开字符串宏为给定的长字符串并做进一步处理。字符串宏在使用时需用百分号(%)括起。Strings节内语句的语法为: strings-key=value 其中strings-key为由字母或数字等可打印字符组成的宏名。 Value为被双引号括起的长字符串,字符串可由字母、数字或其他可打印字符组成。一个具体的安装实例 本文接下来列举一个名为“Mysetup.inf”的安装信息文件

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

20、 完成上述安装任务的“Mysetup.inf”文件内容如下: Version signature=“$chicago$” AdvSetup HKLM,SOFTWAREMicrosoftWindowsCurrentVersionRunonceSetup,“INF制作安装程序”,“RunDll32.exe“%01%”advpack.dll,LaunchINFSection Mysetup.inf,DefaultInstall2” DefaultInstallX DefaultInstall AddReg=AdvSetup DefaultInstall2 CopyFiles = 拷贝到用户指定目录,

21、拷贝到WindowsSystem子目录 , 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 拷贝到WindowsSystem子目录 = 11 My-path 49000,49001,4

22、9002,49003=index-again,1 index-again “”,“”,“”,,“默认安装到“C:MyApp”目录,可选择”,“%30%MyApp” 拷贝到用户指定目录 MyApp.exe MyApp.dll MyApp.hlp 拷贝到WindowsSystem子目录 Ass_1.dll Ass_2.dll 加exe文件快捷方式 setup.ini, progman.groups, “group1=“我的程序组” setup.ini, group1,“我的应用程序”,“%49000%MyApp.exe”,“MyApp.exe” 加hlp文件快捷方式 setup.ini, prog

23、man.groups, “group1=“我的程序组” setup.ini, group1,“我的应用程序帮助”,“%49000%MyApp.hlp”,“MyApp.hlp” 读者会注意到上面的文件内许多键名使用了中文,这是因为INF格式文件支持中文提示及中文键名。这些中文键名不仅充当功能键起索引的作用,还形象化地标识了键的前后对应关系,增强了文件内容的可读性,有利于后续更改、维护。 安装时,首先确保应用程序的所有待安装文件和“Mysetup.inf” 文件处在同一个目录下,右击“Mysetup.inf”文件选“安装”或按Shift键的同时按功能键F10。待目录选择对话框出现,点击“浏览”按钮或直接在文本编辑框内键入目录名称后,屏幕显示文件安装拷贝和更新快捷方式进度,最终结束。 打开资源管理器,就可查看到所有文件均已拷贝到指定目录位置。点击“开始程序”,可以找到“我的程序组”程序组及下属的“我的应用程序”、“我的应用程序帮助”程序项,选中程序项均能激活对应文件,说明文件安装及快捷方式关联均告成功。 小 结 本文介绍的文件安装方法适合于大众,读者可熟悉语法、参考例子、效仿编写,制作出自己的安装信息文件。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1