超精简加封装的VB注册表读写删改操作代码

来源:百度文库 编辑:神马文学网 时间:2024/04/28 14:01:47
2010年01月22日 星期五 11:29
'根键常数
Const HKEY_CLASSES_ROOT = -2147483648#
Const HKEY_CURRENT_USER = -2147483647#
Const HKEY_LOCAL_MACHINE = -2147483646#
Const HKEY_USERS = -2147483645#
'键值类型
Const REG_SZ = 1&         '字符串值
Const REG_BINARY = 3&         '二进制值
Const REG_DWORD = 4&         'DWORD   值
'声明有关API函数
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByRef phkResult As Long _
) As Long       '建立一个新的主键
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByRef phkResult As Long _
) As Long       '打开一个主键
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String _
) As Long       '删除一个主键
Private Declare Function RegCloseKey Lib "advapi32.dll" _
( _
ByVal hKey As Long _
) As Long       '关闭一个主键
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
ByVal lpData As Any, _
ByVal cbData As Long _
) As Long       '创建或改变一个键值,lpData应由缺省的ByRef型改为ByVal型
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
ByRef lpType As Long, _
ByVal lpData As Any, _
ByRef lpcbData As Long _
) As Long       '查询一个键值,lpData应由缺省的ByRef型改为ByVal型
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String _
) As Long       '删除一个键值
'主过程
Private Sub Form_Load()
Dim nKeyHandle     As Long, nValueType       As Long, nLength       As Long
Dim sValue     As String
sValue = "I   am   a   winner!"
'Call RegCreateKey(HKEY_CURRENT_USER, "New   Registry   Key", nKeyHandle)
Call RegOpenKey(HKEY_CURRENT_USER, "New   Registry   Key", nKeyHandle) '若没有创建键值,则需掉用打开,否注释这个
'Call RegSetValueEx(nKeyHandle, "My   Value", 0, REG_SZ, sValue, 255)
sValue = Space(255)
nLength = 255
Call RegQueryValueEx(nKeyHandle, "My   Value", 0, nValueType, sValue, nLength)
MsgBox sValue
' Call RegDeleteValue(nKeyHandle, "My   Value")
' Call RegDeleteKey(HKEY_CURRENT_USER, "New   Registry   Key")
' Call RegCloseKey(nKeyHandle)
End Sub