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

来源:百度文库 编辑:神马文学网 时间:2024/04/17 00:47:56
超精简加封装的VB注册表读写删改操作代码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