1. 如何编写 INF 文件
自动运行光盘的制作
制作AUTO-CD的关键就是如何编写自动运行信息文件Autorun.inf,它是AUTO-CD所必须的。这个文件的主要作用就是告诉Windows自动运行哪个程序和它的启动路径,并为光盘设置在资源管理器及“我的电脑”中所显示的图标。但是,如果关闭了光驱的自动插入通告功能,则只能使用Shell32.DLL(存于Windows的System目录下)中的默认光盘图标。
打开一些AUTO-CD中的Autorun.inf,你会发现它的编写格式是:
[AutoRun]
open=……
icon=……
[AutoRun]是针对PC机(机型为386或更高)的自动运行识别标志。除此之外,还有针对其他几种计算机系统的识别标志,它们是:针对MIPS公司MIPS系统的[AutoRun.mips];针对DEC公司Alpha系统的[AutoRun.alpha];针对苹果公司Power
PC机的[AutoRun.ppc]。不过,除非你想制作通用的自动运行光盘,否则用不到这些标识。
open一行是告诉操作系统要自动运行的文件名和它的启动全路径。比如,若想自动运行Autorun目录下的Run.exe文件,这一行就写成:
open=Autorun\\Run.exe
注意,在目录名的左边不能有反斜线,否则计算机将按“C:\\”处理,也就无法启动指定的程序了。
icon一行是告诉操作系统该光盘以什么样的图标表示,如果你不想指定,这一行也可以不写。
图标的调用方法有三种:
第一种是直接指向图标文件(.ico)。比如要想使用在Autorun目录下的一个图标文件Run.ico,调用格式与open一行相同,即:
icon=Autorun\\Run.ico
第二种调用方法就是指向带有图标的exe文件,只要是For Windows
9x/NT的exe文件都带有图标。而且,如果该文件带有多个图标还可以用编号进行挑选。比如所选的是Run.exe,它带有5个图标,其第一个也是默认图标的调用格式为:
icon=Autorun\\Run.exe或icon=Autorun\\Run.exe,0
若想调用第三个图标,格式为:
icon=Autorun\\Run.exe,2
因为第一个图标的编号是0,所以第三个图标的编号就是2了。另外,在逗号的两边都不能有空格,否则就调用默认的图标。而且,若调用的编号大于其最大编号,那光盘的图标就为空,什么也没有。可能有人会问,我怎么知道目标文件带有几个图标?不用着急,跟着我做:用鼠标右键点击任意一个带有图标的exe文件的“快捷方式”――在快捷菜单中选择“属性”――选择“快捷方式”――点击“更改图标…”――用“浏览…”的方式打开你选择的目标文件,现在你就能看到该文件到底有多少个图标了。至于图标的排列顺序在Windows95中是从左至右,在Windows 98中则是先上下后左右,不要数错哟。
第三种调用方式就是指向带有图标的DLL文件,也就是动态链接库文件,具体的格式与注意事项都与第二种方法相同,在此就不作介绍了。
至此,一个完整的Autorun.inf文件就编辑完成了,结合你需要烧录的内容,在确认调用路径无误后,就可以开始烧录了。此时唯一要注意的就是Autorun.inf文件必须放在光盘的根目录下,否则Windows无法找到它,也就不能自动运行了。
2. 用什么inf文件
ile的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。
在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文件中了。
接下来是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该dll,如果是no就不必了;再下来是DestDir,它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者\WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded Program Files目录下;最后是FileVersion,这个就比较明显了,说明了ctrl1.dll的版本号。有时候我们使用VB来开发控件的时候,需要将VB的虚拟机装上去,它需要一些其它的说明的,简单地讲一下吧:在[Add.Code]中增加一项MSVBVM60.DLL=MSVBVM60.DLL(以VB6为例)下面是MSVBVM60.DLL区域:[MSVBVM60.DLL]hook=MSVBVM60.cab_InstallerFileVersion=6,0,81,76FileVersion很明显,是版本号,就不再说发,就说说hook吧。
hook区域是在安装的时候需要执行的区域,它分为两种,一种是有条件的,另外一种是无条件的,无条件的hook区域是必须执行的,反之则根据条件判断是否执行。以[Setup Hooks]标记的区域是无条件区域,如下所示[Setup Hooks] hookname=section-name[section-name]run=%EXTRACT_DIR%\setup.exe无条件区域常用来通过一个inf文件执行一个安装程序,这就是我们在资源管理器右键点击一个inf文件时在执行安装这样的菜单的原因了当ie下载了一个cab文件,如果文件中没有[Add.Code],则处理[Setup Hooks]区域,运行run所指定程序,哧哧,上面就是setup.exe;条件区域则为在一定条件下执行,前面为MSVBVM60.DLL指定的hook区域就是一个条件区域,如果在MSVBVM60.DLL指定的CLSID或者version不能满足需要而且没有file这个命名值,则执行hook所指定的区域。
[MSVBVM60.cab_Installer]file-win32-x86=/controls/vb6/VBRun60.cabrun=%EXTRACT_DIR%\VBRun60.exe上面[MSVBVM60.cab_Installer]是一个hook区域,它也包含了一个file值,指定一个URL,表示MSVBVM60.DLL可以从这个URL下载得到;run则说明了执行哪一个文件这里有必要说明一下的是,MS对一些常用的Redistributable Microsoft DLLs可以通过指定CODEBASE属性为/controls,这样在cab文件中就中需要包含这些文件,在计算机上有一个文件redist.txt上面的dll就是Redistributable Microsoft DLLs创建一个cab文件:cabarc N ctrl1.cab ctrl1.inf ctrl1.dllN表示要创建一个新的文件,ctrl1.cab是创建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。然后就可以将cab文件放到网页上了这里也在一个version,不过这里的version是指控件的version,而inf里的是文件的version。
制作电子签名:首先从下面的网址下载制作签名的工具SignCode,地址是/workshop/gallery/tools/authenticode/authcode.asp从签名授权中心如VeriSign或者你的局域网上运行的Microsoft Certificate Server授权服务器得到一个certificate,在申请授权的过程你会得到一个私钥。也可以使用MakeCert.exe和Cert2Spc.exe创建的私钥进行测试,方法是首先使用MakeCert创建一个X.509的。
4. 扩展名为inf的文件的功能是什么
INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。
*规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。
*规则三:INF文件对大小写不敏感。
*规则四:“;”号后面的内容为注释。
*规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行。