对注册表进行编程的“捷径” |
|
我们知道,在VB中,可以用 SHELL 函数来执行一个可执行文件。而对注册表的访问可以方便地用 Regedit.exe 命令将它与一文本文件联系进来。这样一来,我们无需掌握高深的API函数,需编程对该文本文件进行处理即可。 首先,注册表中各个主键和子键的键值,一般来说有以下几种类型: ①REG_SZ(普通字符串) ②REG_EXPAND_SZ(可展开式字串) ③REG_BINARY(二进制) ④REG_DWORD(长整数型,即十六进制值)。 他们在导出的注册表文件中的表示形式不尽相同。具体实例请参见后文。 其次,让我们来熟悉一下Regedit命令的用法及有关参数: REGEDIT filename1 REGEDIT /E filename3 [regpath1] REGEDIT /D regpath2 filename1 指定将要输入到注册表中的文件。 /E filename3 指定注册表的输出文件名。 regpath1 指定将要输出的注册表的键名(缺省为输出整个注册表) /D regpath2 指定将要删除的注册表的键名 其中导出或导入的文件为一文本文件。格式如下:(小括号内为注释,……表示此处有省略) REGEDIT4 (必须以此开头,注意大小写) [HKEY_LOCAL_MACHINE\Software](每个子键与上一子键之间必须空一行,且子键用[]括起来) @=""(@表示键值名为“默认”,键值为空串) …… …… [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion] "InstallType"=hex:03,00 (表示键名为"InstallType",键值为REG_BINARY(即二进制)类型 03 00) "DevicePath"="C:\\WINDOWS\\INF" (键"DevicePath"是普通字符串,即 REG_SZ 类型。当字符串中含有路径“\”等特殊字符时,约定 用“\\”代替“\”,用“\n”和“\"”来代替回车和 "字符) …… …… [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\SetupX\Cert] "RG2CATDB Return"=dword:00000000(dword:表示该键值REG_DWORD(长整数型,即十六进制值) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MS-DOSOptions\Smartdrv] …… …… "Autoexec.Bat"="LoadHigh %WINDIR%\\SmartDrv"(含有一对%的字符串是可展开式字串,即REG_EXPAND_SZ类型,此处%WINDIR%表示WINDOWS的工作目录) 例如:可用以下代码将指定的子键路径[HKEY_LOCAL_MACHINE\Software]的默认值修改为字符串:“此处值已修改!”
按以上思路,我们可以很方便快捷地对注册表进行增、删、改等操作,是不是很简单? |