实现对系统注册表的操作 'This program needs 3 buttons Const REG_SZ = 1 ' Unicode nul terminated string Const REG_BINARY = 3 ' Free form binary Const HKEY_CURRENT_USER = &H80000001 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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, lpData As Any, ByVal cbData As Long) As Long Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long 'retrieve nformation about the key lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize) If lResult = 0 Then If lValueType = REG_SZ Then 'Create a buffer strBuf = String(lDataBufSize, Chr$(0)) 'retrieve the key's content lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize) If lResult = 0 Then 'Remove the unnecessary chr$(0)'s RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1) End If ElseIf lValueType = REG_BINARY Then Dim strData As Integer 'retrieve the key's value lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize) If lResult = 0 Then RegQueryStringValue = strData End If End If End If End Function Function GetString(hKey As Long, strPath As String, strValue As String) Dim Ret 'Open the key RegOpenKey hKey, strPath, Ret 'Get the key's content GetString = RegQueryStringValue(Ret, strValue) 'Close the key RegCloseKey Ret End Function Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Save a string to the key RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData) 'close the key RegCloseKey Ret End Sub Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Set the key's value RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4 'close the key RegCloseKey Ret End Sub Sub DelSetting(hKey As Long, strPath As String, strValue As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Delete the key's value RegDeleteValue Ret, strValue 'close the key RegCloseKey Ret End Sub Private Sub Command1_Click() Dim strString As String 'Ask for a value strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title) If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title Exit Sub End If 'Save the value to the registry SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString) End Sub Private Sub Command2_Click() 'Get a string from the registry Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue") If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title End Sub Private Sub Command3_Click() 'Delete the setting from the registry DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue" MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title End Sub Private Sub Form_Load() Command1.Caption = "Set Value" Command2.Caption = "Get Value" Command3.Caption = "Delete Value" End Sub
操作注册表有一堆API函数,功能很全的!!! RegCloseKey VB声明 Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long 说明 关闭系统注册表中的一个项(或键) 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,要关闭的项 ________________________________________________________________________________ RegCreateKeyEx VB声明 Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long 说明 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数。如指定的项已经存在,则函数会打开现有的项 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个打开项的句柄,或者一个标准项名 lpSubKey String,欲创建的新子项的名字 Reserved Long,设为零 lpClass String,项的类名 dwOptions Long,下述常数为零:REG_OPTION_VOLATILE——这个项不正式保存下来,系统重新启动后会消失 samDesired Long,带有前缀KEY_??的一个或多个常数。它们组合起来描述了允许对这个项进行哪些操作 lpSecurityAttributes SECURITY_ATTRIBUTES,对这个项的安全特性进行描述的一个结构(用ByVal As Long传递空值)。不适用于windows 95 phkResult Long,指定用于装载新子项句柄的一个变量 lpdwDisposition Long,用于装载下列某个常数的一个变量: REG_CREATED_NEW_KEY——新建的一个子项 REG_OPENED_EXISTING_KEY——打开一个现有的项 注解 REG_OPTION_VOLATILE不适用于windows 95 -------------------------------------------------------------------------------- RegDeleteKey VB声明 Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long 说明 删除现有项下方一个指定的子项 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或者标准项名之一 lpSubKey String,要删除项的名字。这个项的所有子项也会删除 -------------------------------------------------------------------------------- RegDeleteValue VB声明 Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long 说明 删除指定项下方的一个值 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或标准项名之一 lpValueName String,要删除的值名。可设为vbNullString或一个空串,表示删除那个项的默认值 -------------------------------------------------------------------------------- RegEnumKeyEx VB声明 Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long 说明 枚举指定项下方的子项 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或者指定一个标准项名 dwIndex Long,欲获取的子项的索引。第一个子项的索引编号为零 lpName String,用于装载指定索引处项名的一个缓冲区 lpcbName Long,指定一个变量,用于装载lpName缓冲区的实际长度(包括空字符)。一旦返回,它会设为实际装载到lpName缓冲区的字符数量 lpReserved Long,未用,设为零 lpClass String,项使用的类名。可以为vbNullString lpcbClass Long,用于装载lpClass缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字符数量 lpftLastWriteTime FILETIME,枚举子项上一次修改的时间
RegEnumValue VB声明 Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long 说明 枚举指定项的值 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或者指定一个标准项名 dwIndex Long,欲获取值的索引。注意第一个值的索引编号为零 lpValueName String,用于装载位于指定索引处值名的一个缓冲区 lpcbValueName Long,用于装载lpValueName缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量 lpReserved Long,未用;设为零 lpType Long,用于装载值的类型代码的变量 lpData Byte,用于装载值数据的一个缓冲区 lpcbData Long,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量 ____________________________________________________________________________ RegOpenKeyEx VB声明 Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long 说明 打开一个现有的项。在win32下推荐使用这个函数 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或指定一个标准项名 lpSubKey String,欲打开注册表项的名字 ulOptions Long,未用,设为零 samDesired Long,带有前缀KEY_??的一个或多个常数。它们的组合描述了允许对这个项进行哪些操作 phkResult Long,用于装载打开项的名字的一个变量 ____________________________________________________________________________ RegQueryInfoKey VB声明 Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long 说明 获取与一个项有关的信息 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。如一个缓冲区的长度不够,不能容下返回的数据,则函数会返回ERROR_MORE_DATA 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或指定一个标准项名 lpClass String,指定一个字串,用于装载这个注册表项的类名 lpcbClass Long,指定一个变量,用于装载lpClass缓冲区的长度。一旦返回,它会设为实际装载到缓冲区的字节数量 lpReserved Long,未用,设为零 lpcSubKeys Long,用于装载(保存)这个项的子项数量的一个变量 lpcbMaxSubKeyLen Long,指定一个变量,用于装载这个项最长一个子项的长度。注意这个长度不包括空中止字符 lpcbMaxClassLen Long,指定一个变量,用于装载这个项之子项的最长一个类名的长度。注意这个长度不包括空中止字符 lpcValues Long,用于装载这个项的设置值数量的一个变量 lpcbMaxValueNameLen Long,指定一个变量,用于装载这个项之子项的最长一个值名的长度。注意这个长度不包括空中止字符 lpcbMaxValueLen Long,指定一个变量,用于装载容下这个项最长一个值数据所需的缓冲区长度 lpcbSecurityDescriptor Long,装载值安全描述符长度的一个变量 lpftLastWriteTime FILETIME,指定一个结构,用于容纳该项的上一次修改时间 ____________________________________________________________________________ RegQueryValueEx VB声明 Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long 说明 获取一个项的设置值 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或者指定一个标准项名 lpValueName String,要获取值的名字 lpReserved Long,未用,设为零 lpType Long,用于装载取回数据类型的一个变量 lpData Any,用于装载指定值的一个缓冲区 lpcbData Long,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数 ____________________________________________________________________________ RegSetValueEx VB声明 Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long 说明 设置指定项的值 返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 参数表 参数 类型及说明 hKey Long,一个已打开项的句柄,或指定一个标准项名 lpValueName String,要设置值的名字 Reserved Long,未用,设为零 dwType Long,要设置的数量类型 lpData Any,包含数据的缓冲区中的第一个字节 cbData Long,lpData缓冲区的长度 还有很多,不一一列了,这些差不多了,其它那些可以到网上查查,到处都有的。呵呵!
'This program needs 3 buttons
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_BINARY = 3 ' Free form binary
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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, lpData As Any, ByVal cbData As Long) As Long
Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
'retrieve nformation about the key
lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
If lResult = 0 Then
If lValueType = REG_SZ Then
'Create a buffer
strBuf = String(lDataBufSize, Chr$(0))
'retrieve the key's content
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
If lResult = 0 Then
'Remove the unnecessary chr$(0)'s
RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
End If
ElseIf lValueType = REG_BINARY Then
Dim strData As Integer
'retrieve the key's value
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)
If lResult = 0 Then
RegQueryStringValue = strData
End If
End If
End If
End Function
Function GetString(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Open the key
RegOpenKey hKey, strPath, Ret
'Get the key's content
GetString = RegQueryStringValue(Ret, strValue)
'Close the key
RegCloseKey Ret
End Function
Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Save a string to the key
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
'close the key
RegCloseKey Ret
End Sub
Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Set the key's value
RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4
'close the key
RegCloseKey Ret
End Sub
Sub DelSetting(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Delete the key's value
RegDeleteValue Ret, strValue
'close the key
RegCloseKey Ret
End Sub
Private Sub Command1_Click()
Dim strString As String
'Ask for a value
strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title)
If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then
MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title
Exit Sub
End If
'Save the value to the registry
SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)
End Sub
Private Sub Command2_Click()
'Get a string from the registry
Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue")
If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub
MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title
End Sub
Private Sub Command3_Click()
'Delete the setting from the registry
DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue"
MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title
End Sub
Private Sub Form_Load() Command1.Caption = "Set Value"
Command2.Caption = "Get Value"
Command3.Caption = "Delete Value"
End Sub
RegCloseKey VB声明
Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long
说明
关闭系统注册表中的一个项(或键)
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,要关闭的项
________________________________________________________________________________
RegCreateKeyEx VB声明
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
说明
在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数。如指定的项已经存在,则函数会打开现有的项
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个打开项的句柄,或者一个标准项名
lpSubKey String,欲创建的新子项的名字
Reserved Long,设为零
lpClass String,项的类名
dwOptions Long,下述常数为零:REG_OPTION_VOLATILE——这个项不正式保存下来,系统重新启动后会消失
samDesired Long,带有前缀KEY_??的一个或多个常数。它们组合起来描述了允许对这个项进行哪些操作
lpSecurityAttributes SECURITY_ATTRIBUTES,对这个项的安全特性进行描述的一个结构(用ByVal As Long传递空值)。不适用于windows 95
phkResult Long,指定用于装载新子项句柄的一个变量
lpdwDisposition Long,用于装载下列某个常数的一个变量:
REG_CREATED_NEW_KEY——新建的一个子项
REG_OPENED_EXISTING_KEY——打开一个现有的项
注解
REG_OPTION_VOLATILE不适用于windows 95
--------------------------------------------------------------------------------
RegDeleteKey VB声明
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
说明
删除现有项下方一个指定的子项
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或者标准项名之一
lpSubKey String,要删除项的名字。这个项的所有子项也会删除 --------------------------------------------------------------------------------
RegDeleteValue VB声明
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
说明
删除指定项下方的一个值
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或标准项名之一
lpValueName String,要删除的值名。可设为vbNullString或一个空串,表示删除那个项的默认值 --------------------------------------------------------------------------------
RegEnumKeyEx VB声明
Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long
说明
枚举指定项下方的子项
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或者指定一个标准项名
dwIndex Long,欲获取的子项的索引。第一个子项的索引编号为零
lpName String,用于装载指定索引处项名的一个缓冲区
lpcbName Long,指定一个变量,用于装载lpName缓冲区的实际长度(包括空字符)。一旦返回,它会设为实际装载到lpName缓冲区的字符数量
lpReserved Long,未用,设为零
lpClass String,项使用的类名。可以为vbNullString
lpcbClass Long,用于装载lpClass缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字符数量
lpftLastWriteTime FILETIME,枚举子项上一次修改的时间
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
说明
枚举指定项的值
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或者指定一个标准项名
dwIndex Long,欲获取值的索引。注意第一个值的索引编号为零
lpValueName String,用于装载位于指定索引处值名的一个缓冲区
lpcbValueName Long,用于装载lpValueName缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量
lpReserved Long,未用;设为零
lpType Long,用于装载值的类型代码的变量
lpData Byte,用于装载值数据的一个缓冲区
lpcbData Long,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量
____________________________________________________________________________
RegOpenKeyEx VB声明
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
说明
打开一个现有的项。在win32下推荐使用这个函数
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或指定一个标准项名
lpSubKey String,欲打开注册表项的名字
ulOptions Long,未用,设为零
samDesired Long,带有前缀KEY_??的一个或多个常数。它们的组合描述了允许对这个项进行哪些操作
phkResult Long,用于装载打开项的名字的一个变量 ____________________________________________________________________________
RegQueryInfoKey VB声明
Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long
说明
获取与一个项有关的信息
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。如一个缓冲区的长度不够,不能容下返回的数据,则函数会返回ERROR_MORE_DATA
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或指定一个标准项名
lpClass String,指定一个字串,用于装载这个注册表项的类名
lpcbClass Long,指定一个变量,用于装载lpClass缓冲区的长度。一旦返回,它会设为实际装载到缓冲区的字节数量
lpReserved Long,未用,设为零
lpcSubKeys Long,用于装载(保存)这个项的子项数量的一个变量
lpcbMaxSubKeyLen Long,指定一个变量,用于装载这个项最长一个子项的长度。注意这个长度不包括空中止字符
lpcbMaxClassLen Long,指定一个变量,用于装载这个项之子项的最长一个类名的长度。注意这个长度不包括空中止字符
lpcValues Long,用于装载这个项的设置值数量的一个变量
lpcbMaxValueNameLen Long,指定一个变量,用于装载这个项之子项的最长一个值名的长度。注意这个长度不包括空中止字符
lpcbMaxValueLen Long,指定一个变量,用于装载容下这个项最长一个值数据所需的缓冲区长度
lpcbSecurityDescriptor Long,装载值安全描述符长度的一个变量
lpftLastWriteTime FILETIME,指定一个结构,用于容纳该项的上一次修改时间
____________________________________________________________________________
RegQueryValueEx VB声明
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
说明
获取一个项的设置值
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或者指定一个标准项名
lpValueName String,要获取值的名字
lpReserved Long,未用,设为零
lpType Long,用于装载取回数据类型的一个变量
lpData Any,用于装载指定值的一个缓冲区
lpcbData Long,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数 ____________________________________________________________________________
RegSetValueEx VB声明
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
说明
设置指定项的值
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
参数 类型及说明
hKey Long,一个已打开项的句柄,或指定一个标准项名
lpValueName String,要设置值的名字
Reserved Long,未用,设为零
dwType Long,要设置的数量类型
lpData Any,包含数据的缓冲区中的第一个字节
cbData Long,lpData缓冲区的长度
还有很多,不一一列了,这些差不多了,其它那些可以到网上查查,到处都有的。呵呵!