VB读写注册表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB读写注册表

今天,我们将制作一个能读写注册表的程序。程序运行后,可以选择要添加、删除、修改或查询的键和键值。程序运行结果如图所示。

运行结果

技术要点

●操纵注册表的API函数

●添加、删除键和键值

●查询键值

实现过程

■新建项目

打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“Rwregister”,然后选择保存路径。单击“确认”。

■添加控件和模块

向当前窗体上添加两组Group控件,每组上有两个RadioButton选项按钮,将它们分别做成控件数组;四个Label控件,用作说明之用;一个ComboBox控件和三个TextBox 控件,分别用于输入相应的子键、键名和键值;四个Button控件用于实现相应的功能。

■设置属性

将Label控件、Button按钮、RadioButton控件的Text属性设置为和界面一致。将TextBox 控件的Text属性清空。

■添加代码

由于本实例使用的API函数和常数比较多,在此仅列出主要的声明部分。

' 这是在模块中添加的代码

Option Strict Off

Public 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

Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA"

(ByVal hKey As Long, ByVal lpSubKey As String) As Long

Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA"

(ByVal hKey As Long, ByVal lpValueName As String) As Long

Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long

Public Type SECURITY_ATTRIBUTES

nLength As Long

lpSecurityDescriptor As Long

bInheritHandle As Long

End Type

' 设置键值

Public Function SetKeyValue(ByRef lPredefinedKey As Integer, ByRef sKeyName As String, ByRef sValueName As String, ByRef vValueSetting As Object, ByRef

lValueType As Integer) As Object

Dim lRetVal As Integer

Dim hKey As Integer

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS,

hKey)

lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)

RegCloseKey(hKey)

End Function

' 查询键值

Public Function QueryValue(ByRef lPredefinedKey As Integer, ByRef sKeyName As String, ByRef sValueName As String) As Object

Dim lRetVal As Integer

Dim hKey As Integer

Dim vValue As Object

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS,

hKey)

lRetVal = QueryValueEx(hKey, sValueName, vValue)

QueryValue = vValue

RegCloseKey(hKey)

相关文档
最新文档