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
现在用注册表编辑器去查看一下注册表,一定生成了您所需的键值。
如何用vb将值写入注册表
最新推荐文章于 2022-01-08 13:36:25 发布