打印本文 打印本文  关闭窗口 关闭窗口  
用VB5读写注册表实例
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:44:27  文章录入:杜斌  责任编辑:杜斌

  用VB5读写注册表实例
  
  首先新建一个工程,在新建的窗体上添加以下控件并设置相应属性:
  控件名 属性 值
   Label1 Caption 注册表键值:
   Label2 Caption 注册姓名:
   Label3 Caption 空
   Label4 Caption 注册公司:
   Label5 Caption 空
   Label6 Caption 空
   Text1 Text 空
   Text2 Text 空
   Command1 Caption 写入注册表
   Command2 Caption 退出
  然后,在程序的声明部分添加如下代码:
   Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
   Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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, lpData As Any, ByVal cbData As Long) As Long
   Const error_success = 0&
   Const error_baddb = 1009&
   Const error_badkey = 1010&
   Const error_cantopen = 1011&
   Const error_cantread = 1012&
   Const error_cantwrite = 1013&
   Const error_registry_recovered = 1014&
   Const error_registry_corrupt = 1015&
   Const error_registry_io_failed = 1016&
   Const hkey_classes_root = &H80000000
   Const hkey_current_user = &H80000001
   Const hkey_local_machine = &H80000002
   Const REG_SZ = 1
   Const regkey = "software\My Soft\My program"
  接着为各个控件添加代码,代码如下:
   Private Sub Command1_Click()
   Dim keyvalue As String
   Dim retvalue As Long
   Dim keyid As Long
   retvalue = RegCreateKey(h da0 key_local_machine, regkey, keyid)
   keyvalue = Text1.Text
   retvalue = RegSetValueEx(keyid, "注册名", 0&, REG_SZ, ByVal keyvalue, Len(keyvalue) + 1)
   keyvalue = Text2.Text
   retvalue = RegSetValueEx(keyid, "注册公司", 0&, REG_SZ, ByVal keyvalue, Len(keyvalue) + 1)
   If Text1.Text <> "" And Text2.Text <> "" Then
   Label3.Caption = Text1.Text
   Label5.Caption = Text2.Text
   End If
   End Sub
  
   Private Sub Command2_Click()
   Unload Me
   End
   End Sub
  
   Private Sub Form_Load()
   Dim retvalue As Long
   Dim result As Long
   Dim keyid As Long
   Dim keyvalue As String
   Dim subkey As String
   Dim bufsize As Long
   Label6.Caption = regkey
   retvalue = RegCreateKey(hkey_local_machine, regkey, keyid)
   If retvalue = 0 Then
   subkey = "注册名"
   retvalue = RegQueryValueEx(keyid, subkey, 0&, REG_SZ, 0&, bufsize)
   If bufsize < 2 Then
   keyvalue = ""
   retvalue = RegSetValueEx(keyid, subkey, 0&, REG_SZ, ByVal keyvalue, Len(keyvalue) + 1)
   Else
   keyvalue = String(bufsize + 1, " ")
   retvalue = RegQueryValueEx(keyid, subkey, 0&, REG_SZ, ByVal keyvalue, bufsize)
   keyvalue = Left$(keyvalue, bufsize - 1)
   Text1.Text = keyvalue
   End If
   Label3.Caption = keyvalue
  
   subkey = "注册公司"
   retvalue = RegQueryValueEx(keyid, subkey, 0&, REG_SZ, 0&, bufsize)
   If bufsize < 2 Then
   keyvalue = ""
   retvalue = RegSetValueEx(keyid, subkey, 0&, REG_SZ, ByVal keyvalue, Len(keyvalue) + 1)
   Else
   keyvalue = String(bufsize + 1, " ")
   retvalue = RegQueryValueEx(keyid, subkey, 0&, REG_SZ, ByVal keyvalue, bufsize)
   keyvalue = Left$(keyvalue, bufsize - 1)
   Text2.Text = keyvalue
   End If
   Label5.Caption = keyvalue
   End If
   End Sub

  好了,存盘,按F5运行程序,在两个Text中分别写入你的“注册姓名”和“注册公司”的名称,然后单击

  “写入注册表”按钮,现在打开“注册表编辑器”,找到HKEY_LOCAL_MACHINE\SOFTWARE\My Soft\My Program,看看右边是不是生成了“注册名”和“注册公司”两个键值,是的话,恭喜你,你成功了。

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