INF编写教程.docx
- 文档编号:23920128
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:17
- 大小:25.57KB
INF编写教程.docx
《INF编写教程.docx》由会员分享,可在线阅读,更多相关《INF编写教程.docx(17页珍藏版)》请在冰豆网上搜索。
INF编写教程
========================INF文件全称InformationFile文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件。
INF
文件是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容。
一般我们总是认为INF
文件是系统设备的驱动程序,其实这是错误的认识,Windows之所以在安装某些硬件的驱动时提示需要INF
文件是因为INF文件为该设备提供了一个全面描述硬件参数和相应驱动文件(DLL文件)的信息。
就好比我们
看着说明书安装电脑硬件一样,我们就是Windows系统,说明书就是INF文件。
INF文件功能非常强大,几
乎能完成日常操作的所有功能。
您可以把它看成是Windows系统底下的超强批初理。
要熟练掌握和理解甚
至是编写INF文件需要对其内部结构有相当的认识。
下面就让我们来深入到INF文件中的内部一窥其真面貌
吧!
INF文件的组成有节(Sections),键(Key)和值(value)三部分。
关键节有
[Version]版本描述信息,主要用于版本控制。
[Strings]字符串信息,用于常量定义。
[DestinationDirs]定义系统路径信息。
[SourceDisksNames]指明源盘信息。
[SourceDisksNames]指明源盘文件名。
[DefaultInstall]开始执行安装。
其它的节可以自定义,下面用一实例来具体讲解。
程序代码
[Version]
Signature=$Chicago$
Provider=%Author%
[Strings]
Product="添加文件关联演示"
Version="1.0"
Author="Xunchi"
Copyright="Copyright2005"
CustomFile="inf";修改您需要的文件名后缀
Program="NOTEPAD.EXE";修改您需要关联的应用程序名
[Add.Reg]
HKCR,"."%CustomFile%,"",FLG_ADDREG_TYPE_SZ,%CustomFile%File
HKCR,%CustomFile%File,"",FLG_ADDREG_TYPE_SZ,安装信息
HKCR,%CustomFile%"File\shell","",FLG_ADDREG_TYPE_SZ,open
HKCR,%CustomFile%"File\shell\open\command","",FLG_ADDREG_TYPE_SZ,%program%%1
[DefaultInstall]
AddReg=Add.Reg
在[Version]节中"Signature"项定义了该INF文件需要运行在何种操作系统版本中。
有$WindowsNT$,
$Chicago$,or$Windows95$三个值供选择,一般选择$Chicago$即可。
项Provider中定义了该文件的创
作来源,%Author%指引用Author项的值。
您也可自定其它项来描述该INF文件的版本信息。
该INF文件的作
用是关联文件,所以主要是对注册表的操作,我们来看[Add.Reg]节,共四条语句,格式都是一样。
HKCR
表示根HKEY_CLASSES_ROOT,第二个参数是子键的路径名,第三个参数是表明值的类型,最后是值(具体见
附表)。
以上都是对操作的定义与过程,在节[DefaultInstall]中是开始执行要安装的流程,AddReg表明
是对注册表进行操作,操作对象是Add.Reg节中的定义。
如果您把AddReg换成DelReg则是删除注册表中的
键值。
当鼠标单击该INF文件在弹出的菜单中选择“安装”就开始执行您所定义的操作。
该示例在系统的
INF文件右键菜单中增加了查看编辑功能并设置了默认动作,因为在安装了不了解的INF文件有可能对系统
产生不良的影响,这样双击文件就可打开编辑该文件了。
再看看INF文件在文件操作方面的能力吧。
请看下面的一个例子。
程序代码
[Version]
Signature=$Chicago$
Provider=%Author%
[Strings]
Product="文件复制和安装演示"
Version="1.0"
Author="Xunchi"
Copyright="Copyright2005"
[FileList]
ProcessList.exe;此文件已在当前目录下,下同。
[FileList1]
Wordpad.exe
[DestinationDirs]
FileList=11;安装到Windows的系统目录
FileList1=10;安装到Windows目录
[DefaultInstall]
Copyfiles=FileList,FileList1
相同的节的作用与上一例类似,请注意新出现的节[FileList],这是我自定义的节名,它表示了一个
文件组,[FileList1]也类似。
在节[DestinationDirs]中需定义每个文件组复制到的目录(各个常量的意
义见附表)。
Copyfiles指明了需要进行复制的文件组。
INF文件的操作还包括服务(NT系统)程序的安装和卸载,INI文件的转换等。
由于这些操作都比较的复
杂和繁琐,且有一定的危险性故下次有机会再向大家进行深入探讨。
最后我们来看一下INF文件的执行机制,这时你也许要问不就是简单的执行一下“安装”吗?
知其然
不知其所以然知识水平是不会提高的。
在“文件夹选项”中的“文件类型”找到INF文件的“安装”命令
看到一串命令。
“rundll32.exesetupapi,InstallHinfSectionDefaultInst_all132%1”它表示了运
行Dll文件setupapi.dll中的命令InstallHinfSection并传递给它起始节的名字DefaultInstall。
可见起
始节是可以自定义的。
INF文件的执行也可用在各种支持API调用的编程工具中。
至此INF文件的结构和运
行机制我们已基本了解,现在就让你的思维开动起来,让它更好的为我们工作吧。
注册表操作的常量定义:
----------------------------------------------------------
常量根值
HKCRHKEY_CLASSES_ROOT.
HKCUHKEY_CURRENT_USER.
HKLMHKEY_LOCAL_MACHINE.
HKUHKEY_USERS.
-----------------------------------------------------------
FLG_ADDREG_APPEND在多字符串后添加字符
FLG_ADDREG_TYPE_SZ字符类型
FLG_ADDREG_TYPE_MULTI_SZ字符串类型
FLG_ADDREG_TYPE_EXPAND_SZ扩展字符串类型
FLG_ADDREG_TYPE_BINARY二进制值
FLG_ADDREG_TYPE_DWORDDWord值
FLG_ADDREG_TYPE_NONENULL值
----------------------------------------------------------
[DestinationDirs]节中所定义的常量路径
----------------------------------------------------------
01源目录(后跟路径)
10Windows目录
11Windows系统目录
12驱动目录
17INF文件目录
18帮助文件目录
20字体目录
21根目录
24应用程序目录
25共享目录
30当前根目录
50System目录
51Spool目录
52Spool驱动目录
53用户配置目录
----------------------------------------------------------
[DefaultInstall]节中定义的操作
----------------------------------------------------------
LogConfigLog日志文件配置
Copyfiles复制文件
Renfiles文件改名
Delfiles删除文件
UpdateInis更新Inis
UpdateIniFields更新Ini字段
AddReg添加注册项
DelReg删除注册项
Ini2RegIni文件转换为Reg文件
----------------------------------------------------------
INF的功能
1复制文件、删除文件、或重新命名文件。
2新增或删除注册表(Registry)中的项目。
3修改重要的系统设置文件(如Autoexec.bat、Config.sys、.INI等)
INF的规则
INF是纯文本文件,它是分节的,这点和INI文件类似,每节以"[]"扩起来,每一个节名最长为255个字符
(Windows2000/XP/2003操作系统中)或28个字符(Windows98操作系统中)。
在节与节之间的内容叫条
目,每一个节又是由许多的条目组成的,每一个条目都由=分开,如a="b"。
如果每一个条目的等号后有多
个值,则每一个值之间用","号分隔开。
INF对大小写不敏感,行注释语句命令是";",类似VB里的’。
如
果一行写不下,使用"\"来换行。
INF的运行
.INF文件是由Windows的SetupAPI解释执行的脚本文件,它的运行过程很简单,是一种线性的执行,线性
的意思就是.INF文件的运行过程不存在分支语句,也就是没有条件语句,一旦开始执行,就是沿着固定的
路线运行。
它的运行是按照节为单位来执行的,从某一个[Install]节开始执行,从上到下执行该节中的
条目,如果该条目是一个节,那么就一条条执行子节中的条目,如此递归执行。
在WINDOW上运行只要右击
这个文件,点击安装即可。
INF的语法结构
;指定版本和签名节
[VERSION]
;系统根据Signuture看是不是适合当前版本,如果适合的话就执行,否则不执行,当然强制安装是可以的
;用于WIN9X
Signature="$CHICAGO$"
;WINNT+
;Signature="$WindowsNT$"
;指定安装文件布局,该行是可选的,如果没有提供布局信息文件,则在INF文件内必须包含
[SourceDisksNames]和[SourceDisksFiles]节
LayoutFile=filename.inf
[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为可选项,表明文件的大小,以字节为单位。
[DestinationDirs]
;指定CopyFiles、RenFiles或DelFiles入口的缺省操作目录
;语法file-list-section=LDID,[Subdir]
;LDID列表如下:
;01;currentdirectory
;04;backupdirectory
;10;windowsdirectory
;11;systemdir
;12;iosubsys
;13;command
;14;controlpaneldirectory
;15;printersdirectory
;16;workgroudir
;17;infdir
;18;helpdir
;19;administrationdir
;20;fonts
;21;viewers
;22;vmm32
;23;colordir
;25;shareddir
;26;winboot
;28;hostwinboot
;30;rootofbootdrive
;31;rootofhostdriveofavirtualbootdrive
;32;oldwindowsdirifexists
;以下例子为安装到window\web目录下
;DefaultDestDir=10,"web"
;[Install]节提供了一个INF文件安装过程的总览,它识别文件内其他包含安装信息节的详细动作,是
Windows内建安装函数识别安装过程和内容的真正入口
[Install]
;[Install]节分[DefaultInstall]和[OtherInstall]两类
;[DefaultInstall]节节名DefaultInstall如前面表格内容所述被显式地在注册表中指定。
;该节也是系统获取INF文件中安装信息的首要入口,当用户右击INF文件选“安装”时该节内容被执行。
;[OtherInstall]与[DefaultInstall]节遵循相同的语法,但必须被显式地调用,常被用来定义反安装动作
;缺省安装节
[DefaultInstall]
;指明添加注册表的子节,等号后面的为自定义节名,例子见[add]节
ADDREG=add
;指明要删除的注册表子节,等号后面的为自定义节名
DELREG=del
;指明要要复制的文件子节,用于安装,Copyfiles命令可以替换系统正在访问的文件。
这些功能通过普通
的del和copy命令都无法实现
CopyFiles=cfile
;指明要要删除的文件子节,用于反安装,多个节以逗号隔开,该命令如果发现要删除的文件被锁定,就
会把文件放到系统删除队列中排队
;等系统重启动的时候,该文件就自动被删除了
DelFiles=删除文件段
;[删除文件段]
;文件名列表
;例子:
;a.exe
;b.sys
;重命名文件段
;RenFiles=重命名文件段
;[重命名文件段]
;语法:
;[file-list-section]
;new-file-name,old-file-name
;file1,file2;修改文件名file1为file2
;更新INI文件段内容子节
UpdateInis=更新INI文件段
;[更新INI文件段]
;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。
flags是可选操作标记
;例子
;%01%\wincmd.ini,Configuration,,"InstallDir=%01%"
;%01%\wincmd.ini,Configuration,,"Mainmenu=%01%\LANGUAGE\TCExtMenu.mnu"
;更新ini文件值内容
updateinifield=
;ini文件更新注册表
ini2reg=aa.ini
;更新config.sys内容
updatecfgsys=更新autoexec.bat段
[更新autoexec.bat段]
;更新autoexec.bat内容
updateautobat=更新autoexec.bat段
[更新autoexec.bat段]
;定义资源节,像资源文件,调用时使用%REG_SZ%就代表了0x00000000
[Strings]
REG_SZ=0x00000000
REG_BINARY=0x00000001
REG_DWORD=0x00010001
;自定义添加注册表项的节
[add]
;注意格式:
HKEY(根键缩写),Subkey(子键),Valuename(键值名),Type(键值类型),Value(键值)
;HKCU->HKEY_CURRENT_USER
;HKCR->HKEY_CLASSES_ROOT
;HKLM->HKEY_LOCAL_MACHINE
;HKU->HKEY_USERS
;HKU->HKEY_USERS
;HKCC->HKEY_CURRENT_CONFIG
;HKDD->HKEY_DYN_DATA
;解禁注册表编辑器
HKCU,Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableRegistryTools,1,0
;解禁IE的Internet选项
HKCU,Software\Policies\Microsoft\InternetExplorer\Restrictions,NoBrowserOptions,1,0
;解禁IE的Internet选项里面的各个具体选项
HKCU,Software\Policies\Microsoft\InternetExplorer\Restrictions,NoBrowserOptions,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Settings,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,HomePage,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,GeneralTab,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Cache,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,History,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Colors,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Fonts,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Languages,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Accessibility,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,SecurityTab,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,SecChangeSettings,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,SecAddSites,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,ContentTab,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Ratings,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,Certificates,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,CertifPers,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,CertifSite,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,CertifPub,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,FormSuggest,1,0
HKCU,Software\Policies\Microsoft\InternetExplorer\ControlPanel,FormSuggestPasswords,1,0
H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- INF 编写 教程