如何用vb将值写入注册表

Option Explicit
    '注册表的入口常量
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_USERS = &H80000003
    '注册表的访问权限常量
    Public Const KEY_QUERY_VALUE = &H1
    Public Const KEY_SET_VALUE = &H2
    Public Const KEY_CREATE_SUB_KEY = &H4
    Public Const KEY_ENUMERATE_SUB_KEYS = &H8
    Public Const KEY_NOTIFY = &H10
    Public Const KEY_CREATE_LINK = &H20
    Public Const KEY_ALL_ACCESS = &H3F
    '打开/建立键值的可选项常量
    Public Const REG_OPTION_NON_VOLATILE = 0&
    Public Const REG_OPTION_VOLATILE = &H1
    '建立新键或打开已存在的键常量
    Public Const REG_CREATED_NEW_KEY = &H1
    Public Const REG_OPENED_EXISTING_KEY = &H2
    '预先定义的访问注册表的权限常量
    Public Const STANDARD_RIGHTS_ALL = &H1F0000
    Public Const SPECIFIC_RIGHTS_ALL = &HFFFF
    'API的返回代码常量
    Public Const ERROR_SUCCESS = 0&
    Public Const ERROR_ACCESS_DENIED = 5
    Public Const ERROR_NO_MORE_ITEMS = 259
    '返回数值类型常量
    Public Const REG_NONE = (0)
    Public Const REG_SZ = (1)
    Public Const REG_EXPAND_SZ = (2)
    Public Const REG_BINARY = (3)
    Public Const REG_DWORD = (4)
    Public Const REG_DWORD_LITTLE_ENDIAN = (4)
    Public Const REG_DWORD_BIG_ENDIAN = (5)
    Public Const REG_LINK = (6)
    Public Const REG_MULTI_SZ = (7)
    Public Const REG_RESOURCE_LIST = (8)
    Public Const REG_FULL_RESOURCE_DESCRIPTOR = (9)
    Public Const REG_RESOURCE_REQUIREMENTS_LIST = (10)
    '访问注册表的API函数要用到的结构类型
    Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Boolean
    End Type
    Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type
    '要用到的API函数声明
    …………
  
    下面简单地介绍一下这几个API:
    RegOpenKeyEx():打开指定的关键字(32位);
    RegSetValueEx():在打开的注册表关键字的值域中存储数据;
    RegCloseKey():释放指定的关键字的句柄;
    RegQueryValueEx():在注册表中查找与您指定的键值相关的值;
    RegCreateKeyEx():建立并打开指定的关键字,若已存在则打开它;
    RegEnumKeyEx():枚举指定的打开注册表关键字的子关键字(32位);
    RegEnumKey():同上功能一样,区别在于它是16位的;
    RegEnumValue():每次调用枚举指定的打开注册表关键字的值复制一个带索引的值的名称和数据块;
    RegDeleteKey():删除一个关键字以及它的子关键字;
    RegDeleteValue():在指定的注册表关键字中删除一个带名字的值。
    通过调用这些API我们可以轻松实现注册表的任意关键字的读取、查询、建立、删除。笔者在这里只打算介绍一下如何建立和删除一个特定的关键字。其它操作读者可以自己去发挥。
    例如:要在“HKEY_LOCAL_MACHINE/Network“下建一个”MyApi“子键并在它的下面建立一个称为“yx”的值域,把它的值设为“yue1975”。我们应该按如下的方法调用API:
    Dim phkResult As Long '保存建立的关键字句柄
    Dim lResult As Long
    Dim SA As SECURITY_ATTRIBUTES
    Dim lCreate As Long
    '建立一个指定的关键字
    call RegCreateKeyEx(HKEY_LOCAL_MACHINE, _ "Network/MyApi",0,"",REG_OPTION_NON_VOLATILE, _ KEY_ALL_ACCESS, SA,
    phkResult, lCreate)
    lResult=RegSetValueEx(phkResult,"yx",0, _ REG_SZ, "yue1975",CLng(Len("yue1975") + 1))
    '关闭关键字
    RegCloseKey phkResult
    现在用注册表编辑器去查看一下注册表,一定生成了您所需的键值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值