INF编写教程.docx

上传人:b****7 文档编号:23920128 上传时间:2023-05-22 格式:DOCX 页数:17 大小:25.57KB
下载 相关 举报
INF编写教程.docx_第1页
第1页 / 共17页
INF编写教程.docx_第2页
第2页 / 共17页
INF编写教程.docx_第3页
第3页 / 共17页
INF编写教程.docx_第4页
第4页 / 共17页
INF编写教程.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

INF编写教程.docx

《INF编写教程.docx》由会员分享,可在线阅读,更多相关《INF编写教程.docx(17页珍藏版)》请在冰豆网上搜索。

INF编写教程.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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