INF文件帮助文档

注册表操作的常量定义:
----------------------------------------------------------
常量          根值 
HKCR HKEY_CLASSES_ROOT.
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKU HKEY_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_DWORD             DWord值
FLG_ADDREG_TYPE_NONE              NULL值
----------------------------------------------------------

[DestinationDirs]节中所定义的常量路径
----------------------------------------------------------
01 源目录(后跟路径)
10 Windows目录
11 Windows系统目录
12 驱动目录
17 INF文件目录
18 帮助文件目录
20 字体目录
21 根目录
24 应用程序目录
25 共享目录
30 当前根目录
50 System目录
51 Spool 目录
52 Spool 驱动目录
53 用户配置目录
----------------------------------------------------------

[DefaultInstall]节中定义的操作
----------------------------------------------------------
LogConfig                Log日志文件配置
Copyfiles                复制文件
Renfiles                 文件改名
Delfiles                 删除文件
UpdateInis               更新Inis
UpdateIniFields          更新Ini字段
AddReg                   添加注册项
DelReg                   删除注册项
Ini2Reg                  Ini文件转换为Reg文件
-----------------------------------------------------------

了解INF后缀文件和一些实例应用

揭开INF文件的神秘面纱 

  INF是Device INFormation File的英文缩写,是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操作系统,而且两者必具其一。 

  另外,该节中“CLASS”条目很重要,它表明了设备的类型,常见的类型有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)。 

  2.Manufacturer节 

  该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如“%ATi%=ATi”指明设备的生产商为“ATi”,这个大家都不会陌生吧,是显卡的生产商。 

  3.SourceDisksNames节 

  该节主要指明安装文件所在的介质。如:“1="ATi Drivers Release CD"”表明所有驱动程序都在零售版的CD盘上。 

  4.SourceDiskFiles节 

  驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。 

  5.DestinationDirs节 

  INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。 

  6.DefaultInstall节和Install节 

  在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。 

  7.String节 

  这一节中定义了字符串变量,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。

读懂INF文件 

  下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构。 

  INF文件精彩实例应用 

  光说不练不行,下面让我们来看几个INF文件的典型应用。 

  1.打开“锁”定的注册表 

  第一步:打开记事本程序,输入以下内容: 

  [version] 

  signature=”$chicago$” 

  [defaultinstall] 

  delReg=DeleteMe 

  [DeleteMe] 

  HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools” 

  HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools” 

  输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF。 

第二步:在“UNLOCK.INF”文件上右键单击,在弹出的右键菜单中点选“安装”,被锁的注册表即会应声而开。 

  2.巧妙利用INF文件自动备份重要的文件 

  大家都知道,注册表是Windows操作系统的命根子,因此,系统启动时会自动运行注册表检查程序,自动更新备份注册表文件。在系统盘的Windows目录中有一个“Scanreg.ini”,Scanregw.exe每天所执行的默认操作都是在它的控制下运行的,我们可以利用这一原理实现对我们重要文件的备份。 

  第一步:打开资源管理器,找到该文件,用记事本程序打开它。我们可以清楚地看到共有五个参数。 

  (1)Backup 这个参数值可为0或1,默认为1。值为1表示在每天首次启动时扫描注册表,值为0表示不进行任何注册表操作。 

  (2)Optimize 这个参数值可为0或1,默认为1。值为1表示每次扫描注册表时删除注册表中的多余数据,从而优化注册表数据,值为0表示不进行删除操作。 

  (3)ScanregVersion=0.0001 程序版本说明。 

  (4)MaxBackupCopies 这个参数用来设置建立的备份文件的个数,值为5至99中的任一个数,默认值为5,即最大可建立五个备份文件,为更好的保护系统,一般来说设置10个左右为宜。 

  (5)BackupDirectory 这个参数用来设置备份文件存放的目录,默认存放目录为Windows\Sysbckup,注意这里填写的必须是完整路径。 

  (6)Files 在“Scanreg.ini”的最后有如下注释内容“;Files=[dir code,]file1,file2,file3”,将其前面的注释符号“;”去掉,你就可以自己DIY需要注册表检查程序备份的重要文件了。默认情况下,注册表检查程序创建注册表备份文件时,会将“system.dat”、“system.ini”、“user.dat”和“win.ini”四个文件保存在“cab”压缩文件中,如果你需要将其他重要的系统配置文件添加到此压缩文件中,可在“Files=”后面输入“[目录代码],文件名1,文件名2,文件名3”,文件名之间以逗号相隔,目录代码含义如下: 

  10 代表C:\Windows目录 

  11 代表C:\Windows\System目录 

  30 代表C盘根目录 

  31 代表Windows系统所在盘的根目录 

  例如要把Autoexec.bat和Config.sys两个文件放到备份文件中,可设置参数为“File=30,config.sys,autoexec.bat”。 

3.硬盘(U盘)也需个性化 

  第一:给硬盘(U盘)DIY一个可爱的图标 

  我们首先将硬盘的生硬图标替换为我们喜欢的图标,给硬盘披上美丽的彩衣。首先准备一图标文件,你可以用图标制作程序制作自己的图标文件,也可以使用现成的图标文件,最好是保存到硬盘某一个分区的根目录下。接着打开记事本程序,录入以下内容: 

  [autorun] 

  ICON=hjzf.ICO 

  其中“hjzf”是图标文件的路径及图标文件名,请自行修改为具体的图标文件的路径及图标文件名。录入完毕,另存为“Autorun.inf”,并将其剪切到某一个你欲扮酷的分区的根目录下。 

  第二:让硬盘能歌善舞 

  想不想当你双击了硬盘分区或是点右键选择右键菜单中的“自动播放”之后,就自动打开音乐播放程序,开始播放音乐文件,让动听的音乐时刻环绕在你的左右。心动了吧,其实十分简单,Come On。 

  接着在“Autorun.inf”文件中录入以下内容: 

  OPEN=D:\Program Files\foobar2000\ 

  foobar2000.exe d:\qs.fpl 

  其中“D:\Program Files\foobar2000\ 

  foobar2000.exe”是笔者喜爱的播放器Foobar2000的具体位置,如果你用的是Winamp或其它的播放器,请替换为具体的播放器所在的位置,“d:\qs.fpl”是Foobar2000播放器的播放列表文件,你也可以替换为某一个具体的音乐文件所在的路径。如果你用的是Winamp则播放列表文件应是“*.m3u”。 利用此方法也可以设置当双击硬盘分区时自动播放影视文件。 


4.无人值守安装Windows 98 

  在Windows 98安装光盘中有一个Batch工具,可以制作用于无人值守安装的脚本,即生成一个包含安装Windows 98时需要和安装向导进行交互的各种信息的INF文件——Msbatch.inf。 

  首先找到位于Windows 98安装光盘“/tools /reskit/batch”目录中的“setup”程序图标安装Batch98工具。 

  接着,运行Batch工具,按照向导提示生成“msbatch.inf”文件,并将该文件保存到软盘中。具体的生成方法请参考有关资料,这里不再赘述。 

  当需要重新安装Windows 98时,用启动盘进入到DOS提示符下,将保存有“msbatch.inf”文件的软盘插入软驱,将Windows 98安装光盘插入光驱,在DOS提示符后键入如下命令:“x:/win98/setup a:msbatch.inf”,回车后即可。其中“X”为光驱和盘符。 

  5.将屏保请进右键菜单 

  当我们有事暂时离开一会儿,利用设有密码的屏幕保护程序可以保护我们当前的操作不被他人偷看。但是,在默认的设置中,屏幕保护程序最快也要在1分钟以后才能够启动,那么怎样才能快速激活屏幕保护程序呢? 

  最常见的方法是在桌面上建立一个启动屏保的快捷方式,在需要时双击即可启动。另外,我们还可以将屏保请进右键菜单! 

  第一步:打开记事本程序,录入以下内容: 

  [version] 

  signature=”$chicago$” 

  [defaultinstall] 

  AddReg=AddMe 

  [AddMe] 

  HKCR,"CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\pingbao",,,"屏幕保护" 

  HKCR,"CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\pingbao\COMMAND",,,"ssstars.scr /S \"%1\"" 

  录入完毕,经检查无误后,另存为“PingBao.inf”,文件名可任取,扩展名必须是INF。 

  第二步:在“PingBao.inf”文件上右键单击,在弹出的右键菜单中点选“安装”。 

  第三步:当需要运行屏幕保护的时候,回到桌面上,在“我的电脑”图标上点击右键选择“屏幕保护”选项。点击一下试试,是不是立即启动屏幕保护程序了。   

 
   注意:其中的“ssstars.scr”为欲启动的屏幕保护程序的文件名,请用你喜欢的屏幕保护程序文件来替换;如果你点选右键菜单中的“屏幕保护”选项后,没有反应即没有启动屏幕保护程序,请将文中的“/S \"%1\"”修改为“\"%1\" /S”即可。 


6.将磁盘管理程序请进右键菜单 

  对磁盘进行定期的整理是我们经常要做的一项工作,每次都是按部就班地点击“开始→程序→附件→系统工具→磁盘碎片整理程序”,然后在弹出的选择驱动器窗口中选择要整理的分区,再点击“碎片整理”按钮开始整理。这样比较麻烦,我们可以试一试将磁盘管理程序添加到右键菜单。 

  第一步:打开记事本程序,输入以下内容: 

  [version] 

  signature=”$chicago$” 

  [defaultinstall] 

  AddReg=addMe 

  [AddMe] 

  HKCR,"\Drive\shell\磁盘整理\command",,,"defrag.exe %1" 

  输入完毕,另存为AddDefrag.INF,名字任取,扩展名必须是INF。 

  第二步:在“AddDefrag.INF”文件上右键单击,在弹出的右键菜单中点选“安装”。 

  第三步:以后要进行磁盘整理,只需打开资源管理器,在相应的盘符上点右键,在弹出的右键菜单中选择“磁盘整理”即可。 

   
7.解决ATi显卡无法安装公版驱动的问题 

  有些第三方的ATi显卡无法安装公版的驱动程序,造成该问题的原因是多方面的,如有些第三方厂商在硬件上做了改动,采用了非公版的PCB设计和BIOS等,这都可能会导致无法安装公版驱动程序的情况发生。当你的显卡遇到这个问题该怎么办呢? 

  首先将你下载的ATi显卡驱动程序解压缩到硬盘任一目录下,在“ATiDrive”子目录中找到会列出所有的inf文件,ATiixpxx.inf——适用于Windows XP,ATii9xxx.inf——适用于Windows 9x ,ATii2kxx.inf适用于Windows 2000 。 

  接着打开操作系统对应的INF文件,通过菜单栏的编辑——查找功能,查找“ati.mfg”字符串,随后会看到“RADEON 7000、RADEON 7200、RADEON 7500、RADEON 8500”等条目信息,将其删除。 

  接着查找与你的显卡匹配的字符串,如笔者的RADEON 7500显卡,就查找“RADEON 7500”,找到如下信息:“RADEON 7500=ati2mtag_RV200,PCI\VEN_1002&&&&DEV_5157&&&&SUBSYS_013A1002”,将“&&&&SUBSYS_013A1002”删除,保存文件。 

  现在再试试,看问题是不是解决了。 

  8.在命令行下安装INF文件 

  通常情况下,我们都是在Windows环境下安装INF文件的,但是假如有一天,你需要在命令行运行INF文件该怎么办呢? 

  在命令行提示符后输入“ rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 INF文件所在的路径及文件名.inf ”,回车后即可安装相应的INF文件。

JS和INF编辑注册表教程

JScript是一种解释型的、基于对象的脚本语言。尽管与C++这样成熟的面向对象的语言相比,JScript的功能要弱一些,但对于它的预期用途而言,JScript的功能已经足够大了。JScript程序是语句的集合,一条Jscript语句相当于英语中的一个完整句。Jscript语句将表达式组合起来,完成一个任务。一条语句由一个或多个表达式、关键字或者运算符(符号)组成。典型地,一条语句写一行,尽管一条语句可以超过两行或更多行。两条或更多条语句也可以写在同一行上,语句之间用分号“;”隔开。通常,每一新行开始一条新语句,分号(;)是JScript语句的终止字符。

    一、用JS编辑注册表

    事实上,JS的主体和VBS文件差不多,就是结构有一点不同而已!所以我们就不多说了。下面是个用JS编辑注册表的简单例子:

var WSHShell=WScript.CreateObject("WScript.Shell");
WSHShell.Popup ("这是一个用JS编辑注册表的例子By yjj");
WSHShell.RegWrite("HKLM\Example_JS", "String Key_JS");
WSHShell.RegWrite("HKLM\Example_JS", "Reginfo By yjj");
WSHShell.RegWrite("HKLM\Example_JS\Value","String Key For JS");
WSHShell.RegWrite("HKLM\Example_JS\Binary", 1,"REG_BINARY" );
WSHShell.RegWrite("HKLM\Example_JS\Dword", 1,"REG_DWORD" );
WSHShell.RegWrite("HKLM\Example_JS\Next","NewData");
WSHShell.Run("Regedit");

    上面这些代码中第一句是定义对象,第二句用来显示一条信息,后面几行写注册表,最后一行运行注册表编辑器。大家可以看出用JS对键值进行操作时要用两斜杠“\”,并且要用“;”表示结束。一般只要能注意这两点,就没有问题了。

    再来看一个用JS编辑注册表的例子。大家知道,浏览某些恶意网页会把我们的注册表给禁用了,由于无法导入注册表文件,造成我们没有办法使用注册表编辑器。把下面的代码存为以js为后缀名的任意文件,然后双击就可以将其导入注册表中,从而给注册表解锁:

VAR WSHShell=WSCRIPT.CREATOBJEt("WSCRIPT.SHELL"); 
WSHShell.Popup("这是一个用JS编辑注册表的例子By YJJ"); 
//下面的例子要在注册表中建立一个Dword值,名为DisableRegistryTools,值为0,注意要说明值的类型! 
WSHShell.RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\system
\DisableRegistryTools", 0,"reg_dword");

    试试看,是不是很神奇啊?以上说的都是添加键值,如果要删除某些键值该怎么办呢?很简单,将“WSHShell.RegWrite”改成“WSHShell.RegDelete”就可以了。

    注意:JScript不是其他语言的精简版,也不是任何事物的简化。不过,它有其局限性。例如,您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。此外,JScript脚本只能在某个解释器或“宿主”上运行,如ASP、Internet浏览器或者Windows脚本宿主。

    二、用INF文件编辑注册表

    INF小知识:INF是用于安装驱动程序的文件,它是文本格式的,记录着驱动程序的所有相关资料。随便打开一个INF文件可以看到许多项,每一项都有特定的含义,比如从“Version”一项就可以看出支持的Windows版本是什么:Win9X系列的代号就是CHICAGO,Win2000/XP的代号就是Windows NT。

    让我们来举个例子。首先打开记事本,然后在里面输入下面内容,然后保存为addreg.inf。

[Version]
Signature="$CHICAGO$"

[DefaultInstall]
Addreg=Add

[Add]
HKLM,"SOFTWARE\★★挥剑斩浮云★★",,%REG_SZ%,★★挥剑斩浮云论坛欢迎您★★!
HKLM,"SOFTWARE\★★挥剑斩浮云★★",SZ字符串,%REG_SZ%,Congratulations!
HKLM,"SOFTWARE\★★挥剑斩浮云★★",Dword双字节,%REG_Dword%,1
HKLM,"SOFTWARE\★★挥剑斩浮云★★",Binary二进值,%REG_BINARY%,00,00,00,00,10,11,00,00
HKLM,"SOFTWARE\★★挥剑斩浮云★★\测试";添加“测试”这个下级子键

[Strings]
REG_SZ=0x00000000
REG_BINARY=0x00000001
REG_DWORD=0x00010001

    鼠标右键点击这个INF文件,选择快捷菜单中的“安装”命令,如果你输入的格式没有错误的话,应该在HKEY_LOCAL_MACHINE\Software下面看到一个新的主键:★★挥剑斩浮云★★,选中这个主键,应该可以在右边看到默认值为“★★挥剑斩浮云论坛欢迎您★★!”,还有一个叫做“SZ字符串”的字符串值为“Congratulations!”等等。

    展开这个主键,还可以看到另外一个主键,名为“测试”,是不是感到很奇怪啊?其实这一招并不神秘,就是那个INF文件捣的“鬼”!

    由上可知,INF文件是由各个小节(Section) 组成,各小节之间必须空一行。小节的名字从中括号“[”起至“]”结束,小节的名字是它的入口点,在此文件中必须是唯一的。小节名之后是小节内容,形式上是“键名称=键值”。在文件中可以添加注释,由分号“;”完成,分号后的内容不被解释执行。书写INF文件的格式如上所示,其各项含义如下:

[Version]:指明能够使用的Windows版本
Signature:系统从这里来看是不是适合当前版本,如果适合的话就执行,否则不执行。
[DefaultInstall]:指出该INF文件包含的其他小节。可将INF文件看成是以[DefaultInstall]为主干的树,在这儿我们可以加入AddReg和DelReg键,它们指定希望添加,编辑,修改或是删除注册表项的小节名称。
Addreg=add:表示在注册表中添加内容,此项就指定了要添加的

HKEY(根键缩写),Subkey(子键),Valuename(键值名),Type(键值类型),Value(键值)

    其中根键缩写方式很明了,前两个字符必须为HK,如HKEY,HKLM,HKR等。子键为不包括根键部分的子键分支,键值为空就表示是默认值。键值类型中,如果为0则指定为字符串型,如果为1则是二进制型。键值中的字符串形式的必须以双引号括起来,而二进制数据则使用十六进制格式表示出来,各字节之间以逗号“,”分割。 

Delreg=del:表示在注册表中要删除的内容
[Strings]:是扩充用的,这样就可以避免记忆麻烦的数字了。比如字符串本来应该是0,现在用REG_SZ表示。

   基本原理就这些,现在我们来删除刚刚我建立的东西。在记事本里面粘贴下面内容:

[Version]
Signature="$CHICAGO$"

[DefaultInstall]
Delreg=Del

[Del]
HKLM,"SOFTWARE\★★挥剑斩浮云★★\测试"
HKLM,"SOFTWARE\★★挥剑斩浮云★★"

    然后保存为扩展名为.INF的任意文件,用鼠标右键点击这个INF文件,选择快捷菜单中的“安装”命令,然后再到注册表编辑器里面看看,是不是刚刚建立的东西没有了。怎么样?很神奇吧?

    也许有人会问,能不能只删除一项呢?可以的。比如我删除HKEY_LOCAL_MACHINE\★★挥剑斩浮云★★下的那个叫做“SZ字符串”的字符串值,那么只需要用记事本写下面内容:

[Version]
Signuture="$CHICAGO$"

[DefaultInstall]
Delreg=Del

[Del]
HKLM,"SOFTWARE\★★挥剑斩浮云★★",SZ字符串

    保存完毕,按照同样的方法运行即可只删除这个字符串值。

    现在,我们再举个用INF文件对注册表进行操作的例子,具体说来就是用INF文件对加了锁的注册表进行解锁。何为加了锁的注册表?大家知道,要禁止别人使用注册表编辑器,可以使用下面这个办法:在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVerssion\policies\system下,新建DWORD值Disableregistrytools,并设其键值为1即可。这样,当有人运行注册表编辑器时就会出现“注册编辑已被管理员所禁止”的对话框,限制了别人使用注册表编辑器,在一定程度上保护了系统的安全。

    但是当自己要使用注册表编辑器时该怎么办呢?我们可以用记事本编制个INF文件进行解锁:

[Version]
Signature="$CHICAGO$"

[DefaultInstall]
Delreg=Del

[Del] 
HKCU,"Software\Microsoft\Windows\CurrentVersion\Policies\System",
Disableregistrytools,1,00,00,00,00

    将上面的内容保存为后缀名为.inf的任意文件,然后用右键点击它,在弹出菜单中选择“安装”即可给注册表解锁。

修改注册表危险度很高,建议修改前先备份

一个用INF文件修改注册表的应用

从INF文件VERSION一项可以看出支持的Windows版本是什么:比如Win9X系列的代号就是CHICAGO,Win2000/XP的代号就是Windows NT.

   打开记事本,然后在里面输入下面内容(最好复制、粘贴),然后保存为ADDREG.INF。
  [Version]
  SIGNATURE = "$CHICAGO"
  ;如果是Windows2000/XP,请将CHICAGO修改为Windows NT
  [DEFAULTINSTALL]
  ADDREG = ADDREG.REG
  [ADDREG.REG]
  HKLM,"SOFTWARE\Smallfrogs",,%REG_SZ%,挥剑斩浮云论坛欢迎您!
  HKLM,"SOFTWARE\Smallfrogs",SZ字符串,%REG_SZ%,Congratulations!
  HKLM,"SOFTWARE\Smallfrogs",Dword双字节,%REG_Dword%,1
  HKLM,"SOFTWARE\Smallfrogs",Binary二进值,%REG_BINARY%,00,00,00,00,10,11,00,00
  HKLM,"SOFTWARE\Smallfrogs\测试"
  [Strings]
  REG_SZ = 0x00000000
  REG_BINARY = 0x00000001
  REG_DWORD = 0x00010001
  鼠标右键点击这个INF文件,选择快捷菜单的安装命令,如果你格式没有错误的话,应该在HKEY_LOCAL_MACHINE\Software下面看到一个新的主键:Smallfrogs,选中这个主键,,应该可以在右边看到默认值为挥剑斩浮云论坛欢迎您!,还有1个叫做"SZ字符串"的字符串值为Congratulations!等等。另外展开这个主键,还可以看到另外一个主键,名字叫做"测试",是不是感到很奇怪啊?其实一点都不神秘,就是那个INF文件搞得鬼。下面我来详细的解释一下。
  其实这是调用了INF文件最基本的功能:修改注册表。格式如下:
  [Version] 指明能够使用的Windows版本
  Signuture 系统从这里来看是不是适合当前版本,如果适合的话就执行,否则不执行
  [DEFAULTINSTALL] 表示默认安装值
  ADDREG 表示在注册表中添加东西
  DELREG 表示在注册表中删除东西
  [Strings] 是扩充用的,这样就可以避免记忆麻烦的数字了。比如字符串本来应该是0,现在用REG_SZ表示。
  基本原理就这些,现在我们来删除刚刚我建立的东西。
  在记事本里面粘贴下面内容
  [Version]
  Signature = "$CHICAGO$"
  [DEFAULTINSTALL]
  DELREG =DELREG.REG
  [DELREG.REG]
  HKLM,"SOFTWARE\Smallfrogs\测试"
  HKLM,"SOFTWARE\Smallfrogs"
  然后保存为DELREG.INF,还是鼠标右键点击这个INF文件,选择快捷菜单的安装命令,然后你再到注册表编辑器里面看看,是不是我刚刚建立的东西没有了。怎么样?很神气吧?
  也许有人会问,能不能只删除一项呢?可以的。比如我删除HKEY_LOCAL_MACHINE\Smallfrogs下的那个叫做"SZ字符串"的字符串值,那么只需要写下面内容:
  [Version]
  Signature = "$CHICAGO$"
  [DEFAULTINSTALL]
  DELREG =DELREG.REG
  [DELREG.REG]
  HKLM,"SOFTWARE\Smallfrogs",SZ字符串
  然后按照同样的方法运作即可只删除这个字符串值。
----------------------------------------------------------

INF文件制作免安装绿色软件教程

在绿色软件的制作中,可以把注册表文件和提取出的软件打包在一起做成绿色软件。但是.REG文件中的路径都是静态的,一旦写好,就不会随着系统的变化而变化,而在.INF文件中,可以使用变量操纵路径(譬如用%01%代替运行目录的绝对路径),从而可以跟踪安装程序所需要的路径的变化。

   下面首先以一个完整的例子来演示如何用.INF文件制作绿色软件,然后具体讲解.INF文件的各种用途。  
  
    EmEditor的绿化  
  
    下载EmEditor的安装文件emed404epx.exe后,发现用WinRAR可以打开,解压后,运行EmEditor,发现丢失了预定义的多种文本格式的语法配置,看来这样做不行,只好采用系统快照的方法了。请随我一步步进行,步骤如下:  
  
    1 扫描系统,制订系统快照。这里我仅仅记录当前系统的注册表(因为我认为EmEditor不会向系统目录拷贝文件,如果判断错误,就会导致“绿化”失败),运行ART(Advanced Registery Tracer),扫描一遍注册表。如图EmEditor_snap.PNG,不要关闭ART。  
  
    2 安装EmEditor。随便安装到哪里,反正一会就卸载。安装好后,如果需要的话,更改配置,或者配置新的文件类型,例如我就增加了NFO文件类型,设定和NFO文件相关联的字符集,这样可以用EmEditor直接察看NFO文件,不需要专门的察看工具了。  
  
    3 记录系统变化。再一次扫描系统,给系统作快照,从ART里面再一次扫描注册表,然后选择菜单命令Registry-〉compare here或者直接用键盘F10,比较结果如图EmEditor_compare.png,点击图中那个save to redo file的按钮,存储为EmEditor.reg文件,关闭ART。  
  
    4 复制并卸载。复制安装好的EmEditor目录到其他路径,然后卸载EmEditor程序。  
  
    5 分析。打开刚刚导出的EmEditor.reg文件,这是一个巨大的reg文件,单单是REG文件就有1兆多,不过不用担心。阅读注册表后,删除和EmEditor无关的注册表项后,如仅仅和资源管理器相关的注册表部分,发现剩下的注册表文件可以分成3个部分。一部分在位于注册表的这个路径[HKEY_LOCAL_MACHINE\SOFTWARE\EmSoft],里面大部分不涉及路径,只有一项记录了EmEditor的路径,就是"ModulePath"="h:\\EmEditor4\\";还有一大部分在注册表的这个路径下面[HKEY_CURRENT_USER\Software\EmSoft\EmEditor v3],里面有很多项都涉及了EmEditor的路径,如"Tmpl"="h:\\EmEditor4\\template.xml";还有就是和EmEditor和txt文件后缀向关联的注册表设置,把EmEditor设置为IE中缺省的源代码察看工具的注册表设置以及注册COM组件EMEDSHL.DLL的注册表部分(和InProcServer32相关的就是)。  
  
    6 “绿化”。  
  
    6.1 把位于注册表路径路径[HKEY_LOCAL_MACHINE\SOFTWARE\EmSoft]的内容存储到EmEditor_HKLM.reg文件中,把位于注册表路径[HKEY_CURRENT_USER\Software\EmSoft\EmEditor v3]的内容存储到EmEditor_HKCU.reg文件中,把剩下的内容首先除掉COM组件EMEDSHL.DLL的相关部分,然后存储到EmEditor_assoc.reg文件中。  
  
    6.2 把EmEditor_HKLM.reg文件和EmEditor_HKCU.reg文件中涉及到路径的注册表内容抽取出来,存储到EmEditorConf.reg文件。  
  
    6.3 绿色软件的制作,其中核心的一点就是获得原来软件的安装程序所做出的注册表的改变,然后把该变化导出为一个注册表文件.REG来进一步分析。如果导出的.REG文件不包括绝对路径,那么可以把该注册表文件和提取出的软件打包在一起做成绿色软件。如果导出的.REG文件中包含当前软件的绝对安装路径,那么就必须每次都要手工修改注册表中路径,是很麻烦的,降低了做成绿色软件的意义所在。而使用.INF文件,使用AddReg命令可以轻松容易的解决这个注册表路径的难题。 

    把EmEditor_assoc.reg文件和EmEditorConf.reg文件用INF的语法转换为INF文件,或者用一个免费小工具reg2inf.exe自动转换,然后把转换得到的EmEditor_assoc.inf文件和EmEditorConf.inf文件中的路径h:\EmEditor4全部用%01%代替。下面是EmEditorConf.inf文件的内容:  
[Version]  
Signature="$CHICAGO$"  
[DefaultInstall]  
AddReg=EmEditorConf_AddReg  
  
hklm,"SOFTWARE\EmSoft\EmEditor v3\Common","ModulePath",,"%01%\"  
hkcu,"Software\EmSoft\EmEditor v3\Config\C++","Tmpl",,"%01%\template.cpp"  
hkcu,"Software\EmSoft\EmEditor v3\Config\CSS","Tmpl",,"%01%\template.css"  
hkcu,"Software\EmSoft\EmEditor v3\Config\HTML","Tmpl",,"%01%\template.htm"  
hkcu,"Software\EmSoft\EmEditor v3\Config\Java","Tmpl",,"%01%\template.java"  
hkcu,"Software\EmSoft\EmEditor v3\Config\javascript","Tmpl",,"%01%\template.js"  
hkcu,"Software\EmSoft\EmEditor v3\Config\JSP","Tmpl",,"%01%\template.jsp"  
hkcu,"Software\EmSoft\EmEditor v3\Config\Perl","Tmpl",,"%01%\template.pl"  
hkcu,"Software\EmSoft\EmEditor v3\Config\PHP","Tmpl",,"%01%\template.php"  
hkcu,"Software\EmSoft\EmEditor v3\Config\Python","Tmpl",,"%01%\template.py"  
hkcu,"Software\EmSoft\EmEditor v3\Config\Ruby","Tmpl",,"%01%\template.rb"  
hkcu,"Software\EmSoft\EmEditor v3\Config\TeX","Tmpl",,"%01%\template.tex"  
hkcu,"Software\EmSoft\EmEditor v3\Config\VBScript","Tmpl",,"%01%\template.vbs"  
hkcu,"Software\EmSoft\EmEditor v3\Config\VBScript for EmEditor","Tmpl",,"%01%\template.vbee"  
hkcu,"Software\EmSoft\EmEditor v3\Config\Windows Script","Tmpl",,"%01%\template.wsf"  
hkcu,"Software\EmSoft\EmEditor v3\Config\XML","Tmpl",,"%01%\template.xml"  
  
    6.4 写一个批处理文件install.bat,内容如下:  
regedit EmEditor_HKLM.reg  
regedit EmEditor_HKCU.reg  
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\EmEditorConf.inf  
regsvr32 EMEDSHL.DLL  
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\EmEditor_assoc.inf  
  
    6.5 把install.bat,EmEditorConf.inf,EmEditor_assoc.inf,EmEditor_HKLM.reg,EmEditor_HKCU.reg5个文件存储到EmEditor的目录,删除其余的注册表文件。  
  
    6.6 根据安装步骤和install.bat,写出相应的卸载的批处理文件,这个比较简单。  
经过测试后,EmEditor工作正常,也可以注释掉install.bat的最后2行语句,这样EmEditor就不会和系统关联,上面的步骤是在windows 2000上的,对于win9x也同样,而且win9x下面的EmEditor的配置文件和windows 2000的一样,仅仅是程序的版本不同。   
把制作好的绿色的EmEditor拷贝到U盘上,需要用的时候,直接执行里面的install.bat文件就可以了(注意,要在EmEditor的目录运行批处理文件),不需要任何文件拷贝。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值