打印本文 打印本文 关闭窗口 关闭窗口
在VB中读写注册表函数源码
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1905  更新时间:2009/4/23 18:57:39  文章录入:mintao  责任编辑:mintao

在以下地址贴中有乱码,

http://www.csdn.net/develop/article/8/8562.shtm

 现补充如下:

Public Function SysRegControl(Optional ByVal RootKey As RegRootKey = regHKEY_LOCAL_MACHINE, Optional ByVal SubKey As String = "", Optional ByVal Key As String = "QiLin", Optional ByRef KeyValue As Variant = "", Optional regKeyType As regKeyTypes = regTypeString, Optional ByVal id As RegControlID = regSetKeyValue) As Boolean
''''***************************************************************************************
''''setregkey 函数
''''功能:
''''   对注册表中指定键键进行操作
''''参数:
''''   RootKey     根键
''''RootKey 说明
''''{       regHKEY_CLASSES_ROOT       = &H80000000
''''        regHKEY_CURRENT_USER       = &H80000001
''''        regHKEY_LOCAL_MACHINE      = &H80000002
''''        regHKEY_USERS          = &H80000003
''''        regHKEY_PERFORMANCE_DATA   = &H80000004
''''        regHKEY_CURRENT_CONFIG     = &H80000005
''''        regHKEY_DYN_DATA       = &H80000006
''''}
''''   SubKey      子键路径
''''   Key     设置的键名
''''   KeyValue    设置的键值
''''   regKeyType  指定键值的类型
''''regKeyType说明:
''''{
''''        regTypeBinary          =&H00000001     ''''Binary
''''        regTypeDword           =&H00000002 ''''DWORD
''''        regTypeString          =&H00000003 ''''String
''''}
''''   ID      函数操作功能号
''''功能ID说明:
''''{       regSetKeyValue         =111    ''''设置键值
''''        regGetKeyValue         =112    ''''取键值
''''        regCreatKey            =113    ''''创建子键
''''        regDeleteKeys          =114    ''''删除末级子键
''''        regDelAllKey           =115    ''''删除非末级子键
''''        regDeleteValues        =116    ''''删除键值
''''        regOther           =120    ''''保留操作ID
''''}
''''返回值:
''''   TRUE        操作成功
''''   FALSE       操作失败
''''   (C)2001.3.2
''''*****************************************************************************************
Dim i As Long
On Error GoTo RegOptionError
''''if RootKey then


    Select Case id
''''=========================================================================================
        Case regSetKeyValue ''''=111   ''''设置键值
''''=========================================================================================
            rtn = RegOpenKeyEx(RootKey, SubKey, 0, KEY_WRITE, hKey)
            If rtn = ERROR_SUCCESS Then
''''{

            Select Case regKeyType
''''----------------------------------------------------------------------------------------
            Case regTypeBinary      ''''=&H00000001        ''''Binary

''''此模式下参数KeyValue须以字符串形式传入,调用实例:
''''SysRegControl regHKEY_LOCAL_MACHINE, "jadgekylin\jklpos", "pos", "jadgekylin@yesky.com", regTypeBinary, regSetKeyValue
''''----------------------------------------------------------------------------------------
                  If VarType(KeyValue) <> vbString Then  ''''参数不合法
                    rtn = ERROR_SUCCESS + 1
                    ''''exit select
                  Else
                  lDataSize = Len(KeyValue)
                  ReDim ByteArray(lDataSize)
                  For i = 1 To lDataSize
                      ByteArray(i) = Asc(Mid$(KeyValue, i, 1))
                  Next
                  rtn = RegSetValueExB(hKey, Key, 0, REG_BINARY, ByteArray(1), lDataSize) ''''write the value
                  End If
''''----------------------------------------------------------------------------------------
            Case regTypeDword   ''''=&H00000002    ''''DWORD

''''调用实例:
''''SysRegControl regHKEY_LOCAL_MACHINE, "jadgekylin\jklpos", "pos", 1, regTypeDword, regSetKeyValue
''''----------------------------------------------------------------------------------------

                If VarType(KeyValue) <> vbLong And VarType(KeyValue) <> vbInteger Then
                    rtn = ERROR_SUCCESS + 1
                    ''''exit select
                Else
                rtn = RegSetValueExA(hKey, Key, 0, REG_DWORD, KeyValue, 4) ''''write the value
                End If
''''----------------------------------------------------------------------------------------
            Case regTypeString  ''''=&H00000003    ''''String

''''调用实例:
''''SysRegControl regHKEY_LOCAL_MACHINE, "jadgekylin\jklpos", "pos", "1", regTypeString, regSetKeyValue
''''----------------------------------------------------------------------------------------

                  If VarType(KeyValue) <> vbString Then  ''''参数不合法
                    rtn = ERROR_SUCCESS + 1
                    ''''exit select
                  Else
                rtn = RegSetValueEx(hKey, Key, 0, REG_SZ, ByVal KeyValue, Len(KeyValue)) ''''write the value
                  End If
''''----------------------------------------------------------------------------------------
            End Select
''''}
            If Not rtn = ERROR_SUCCESS Then   ''''if the was an error writting the value
                rtn = RegCloseKey(hKey)
                SysRegControl = False ''''调用失败
                Exit Function
            End If
            rtn = RegCloseKey(hKey) ''''close the key

  &nb

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口