在C:/Windows/INF文件夹中存放有大量的INF文件 。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件” 。
解剖INF文件的结构
INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等 。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的 。
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来 。这些节名有些是系统定义好的,有一些是用户自定义的 。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中) 。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起 。
*规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的 。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开 。
*规则三:INF文件对大小写不敏感 。
*规则四:“;”号后面的内容为注释 。
*规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行 。
明白了INF文件的规则后,让我们一起来解剖INF文件的结构 。
1.Version节
每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统 。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一 。
另外,该节中“
[DeleteMe]
HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF 。
3. 网页中的ActiveX 控件,cab包中的INF文件怎么写 1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,Cabinet SDK的下载地址是/workshop/management/cab/cabdl.asp 。
Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件 。2、制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件 。
使用inf文件将这些东西都写进去 。3、inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通过一些命名区域来提供需要的信息 。
怎么写inf最开始一般是[Version]区:eg: [Version] signature="$XXXX$" AdvancedINF=2.0接下来就是最重要的[Add.Code]区:eg: [Add.Code] Ctrl1.dll=C1Section Ctrl2.dll=Ctrl2.dll前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护 。还有需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序,例如前面说的ctrl1.dll要依赖于ctrl2.dll,则ctrl2.dll要出现在ctrl1.dll的前面 。
因为安装时是按照相反的顺序进行的,也就是说先安装ctrl2.dll,然后才是ctrl1.dll,哧哧,记清楚了,不要搞反了 。再接下来是各个文件的区域了[Ctrl1.dll]file-win32-x86=thiscabRegisterServer=yesclsid={ 。
..}DestDir= FileVersion=1,0,0,0[Ctrl1.dll]区域中的第一个file值告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、ppc (Power PC)、mips或者alpha了 。file的值可以取三个一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件(ctrl1.dll);如果是thiscab很明显就在当前的cab文件中了 。