或是www.#####.com
或是www.#####.com
试了一下 vb2005很容易就实现了
vb6的搜了一下 找到一些资料 希望对你有帮助:
*********************
存取注册表时, 则必须先指明键。键在注册表编辑器中所看到的是一长串的字符串,例如 “HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion”。在 Visual Basic 6.0 内部,已经提供了一个标准的注册位置,以存储创建于VB的应用程序的程序信息:HKEY_CURRENT_USER\Software\VB and VBA Program settings\(为了叙述简单,以下将这一位置简称“标准位置”)。
函数GetSetting(appname, section, key[, default]): 检索注册表设置值。
语句SaveSetting appname,section,key,value: 保存或创建注册表设置值。
函数GetAllSettings(appname, section): 返回一个包含多项注册表设置值的数组。
语句DeleteSetting appname, section[, key]: 删除注册表设置值。
以上所用参数的说明:
[ ]: 表示可选项。
appname:字符串表达式,包含应用程序或工程的名称,是标准位置下的一个子键。
section:字符串表达式,包含区域名称,是 appname 下的一个子键。
key:字符串表达式,标准位置\appname\
section子键的键名(Value Name)。
value:字符串表达式,标准位置\appname\
section子键对应于键名(Value Name)的键值(Value)。
default:表达式,如果注册表项设置中没有设置值,则返回默认值。如果省略,则 default 取值为长度为零的字符串 (“”)。
GetAllSettings返回Variant,是内容为字符串的二维数组,该二维数组包含指定区域中的所有注册表项设置值及其对应值。 如果 appname 或 section 不存在,则GetAllSettings 返回未初始化的 Variant。
实例之一
在 VB6.0中新建一工程并命名为 vbreg.vbp,删去其中所有窗体,在工程资源管理器中点击右键,选择添加模块,并命名为 vbreg.bas。双击reg.bas,输入如下代码:
Dim avntSettings As Variant
Dim intX As Integer
avntSettings = GetAllSettings("VB 6 API 声明加载器", "File List")
For intX = 0 To UBound(avntSettings, 1)
Debug.Print avntSettings(intX, 0), avntSettings(intX, 1)
Next intX
上面这段程序首先用 GetAllSettings 函数检索“VB 6 API 声明加载器”子键File List部分的两个注册表项的值,并将其结果显示在立即窗口中。开始运行前请按<CTRL>+<G>确保立即窗口显示在屏幕上。同时请打开注册表,以便将标准位置\VB 6 API 声明加载器\File List的键值与结果进行对照。
下面这段程序用 SaveSetting 语句在标准位置下建立名为“我的工程\我的子键”的子键,然后使用 GetSetting 函数来得到其中一项设置值并显示出来。因为有传入参数default,GetSetting 函数一定会有返回值。
Windows API 的注册表编程
VB自身虽提供了四个关于注册表的函数,但是这些函数只能在“HKEY_CURRENT_USER\
Software\VB and VBA ProgramSettings”下读取、删除、修改键值。这对于一般的应用程序利用它们可以达到目的,如果想对其他的非“标准位置”的主键或子键进行访问,该怎么办?此时,必须借助Windows API的帮助。
在Windows内部, 每一个键都会对应到一个 Key Handle(等于一个长整数值,程序中通常以 hKey表示),Windows之所以要以hKey来代表键是为了让注册表的存取更有效率,因为整数的操作效能要优于字符串, 所以我们首先来了解如何取得键的 Key Handle(即hKey)。位于最上层的键,有HKEY_CLASSES_ROOT、HKEY_CURRENT
_USER、HKEY_LOCAL_MACHINE等,这些键的hKey值是固定不变的,其值见下表:
-----------------------
Key Key Handle
-----------------------
HKEY_CLASSES_ROOT &H80000000
HKEY_CURRENT_CONFIG &H80000005 HKEY_CURRENT_USER &H80000001
HKEY_DYN_DATA &H80000006
HKEY_LOCAL_MACHINE &H80000002
HKEY_USERS &H80000003
--------------------
但如果要取得这些键的Subkey Handle,则必须调用RegOpenKey API函数
RegOpenKey API函数,RegOpenKey含有三个参数,用法如下:
Private Declare Function RegOpenKey Lib “advapi32.dll” Alias “RegOpenKeyA” (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
得到keyhandle后
然后用下面的函数进行具体操作
RegSetValueEx(): 在打开的注册表关键字的值域中存储数据;
RegCloseKey(): 释放指定的关键字的句柄;
RegQueryValueEx(): 在注册表中查找与您指定的键值相关的值;
RegCreateKeyEx(): 建立并打开指定的关键字,若已存在则打开它;
RegEnumKeyEx(): 枚举指定的注册表关键字的子关键字(32位);
RegEnumValue(): 每次调用枚举指定的注册表关键字的值,复制一个带索引的值的名称和数据块;
RegDeletekey(): 删除一个关键字以及它的子关键字;
RegDeleteValue(): 在指定的注册表关键字中删除一个带名字的值。
**************
按照我的理解:
Dim ret As Long,hKey As Long, strValue as string
ret=RegOpenKey(HKEY_LOCAL_
MACHINE, "Software\Microsoft\Internet Explorer\Main", hKey)
if ret = 0 then (代表操作成功)
读注册表
end if
具体读写注册表的方法看楼下的链接
[此贴子已经被作者于2007-1-26 12:32:59编辑过]