• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
教你在VB中如何使用注册表
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
教你在VB中如何使用注册表
软件发布 教你在VB中如何使用注册表
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VB & VB.NET教程 >> 教你在VB中如何使用注册表

教你在VB中如何使用注册表

添加时间: 2006-2-16 9:02:39  作者: VB教程  阅读次数:196   来源: http://www.d9soft.com

       
Windows系统中的注册表(Resgister)保存着大量的信息,我们可读写注册表来更好地为我们软件服务。
  下面详细讲叙如何通过调用API函数操作注册表:如何打开、创建主键,如何保存键值,以及查询某键的键值等。

  一、常数定义和API申明(我们会在使用该API时对它进行说明):   Private Const HKEY_CLASSES_ROOT = &H80000000 主键
  Private Const HKEY_CURRENT_USER = &H80000001 主键
  Private Const STANDARD_RIGHTS_ALL = &H1F0000
  Private Const KEY_ENUMERATE_SUB_KEYS = &H8
  Private Const KEY_SET_VALUE = &H2
  Private Const KEY_CREATE_SUB_KEY = &H4
  Private Const KEY_QUERY_VALUE = &H1
  Private Const KEY_NOTIFY = &H10
  Private Const KEY_CREATE_LINK = &H20
  Private Const SYNCHRONIZE = &H100000
  Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
  Private Const REG_MULTI_SZ = 7
  Private Const ERROR_SUCCESS = 0&
  Private Const READ_CONTROL = &H20000
  Private Const REG_SZ = 1
  Private Const REG_DWORD = 4
  Private Const REG_EXPAND_SZ = 2
  Private Const REG_BINARY = 3
  Private Const REG_DWORD_BIG_ENDIAN = 5
  Private Const REG_DWORD_LITTLE_ENDIAN = 4
  Private Const REG_NONE = 0
  Private Declare Function RegOpenKeyEx Lib “advapi32.dll" Alias “RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  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 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
  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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long


  二、将下列代码放在窗体的Load事件中
  Private Sub Form_Load()
  Dim hKey As Long 主键的句柄
  Dim lpData As String 查询得到的键值
  Dim SizeOfData As Long 键值的长度
  Dim ValueType As Long 键值的类型
  SizeOfData = 150
  Dim return_OpenKey As Long 函数调用的返回值
  Dim PriKey As String 主键
  Dim KeyValue1, KeyValue2 As String 键值名称
  PriKey = "北信BITI\People" 主键
  KeyValue1 = "教授" 键值名称
  KeyValue2 = "学生" 键值名称
  下面的函数RegOpenKeyEx取得一个句柄hKey

return_OpenKey =RegOpenKeyEx(HKEY_CURRENT_USER, "",0, KEY_ALL_ACCESS, hKey)
 
  下面的函数RegCreateKey建立一个主键,如此键已存在,则打开它 If RegCreateKey(hKey, PriKey, hKey) <> ERROR_SUCCESS Then
MsgBox "create " & PriKey & "Failed"
Exit Sub
End If
  
Dim KeyData As String 键值
KeyData = "500"

  下面的函数RegSetValueEx给指定的键值名称赋键值

If RegSetValueEx(hKey, KeyValue1, 0&, REG_SZ, ByVal KeyData, Len(KeyData) + 1) <> ERROR_SUCCESS Then
   MsgBox "SetValue " & KeyValue1 & "Failed "
   Exit Sub
   End If
   KeyData = "15020"

  下面的函数RegSetValueEx给指定的键值名称"学生" 赋键值为"15020"

If RegSetValueEx(hKey, KeyValue2, 0&, REG_SZ, ByVal KeyData, Len(KeyData) + 1) <> ERROR_SUCCESS Then
MsgBox "SetValue " & KeyValue2 & "Failed "
Exit Sub
End If
  
return_OpenKey = RegQueryValueEx(hKey, KeyValue1, 0&, REG_SZ, 0&, SizeOfData)
lpData = String(SizeOfData + 1, " ")

  下面的函数RegQueryValueEx检索指定键值名称的键值和键值类型

If RegQueryValueEx(hKey, KeyValue1, 0&, REG_SZ, ByVal lpData, SizeOfData) <> ERROR_SUCCESS Then
MsgBox "Query " & KeyValue1 & "Failed"
End If
RegCloseKey (hKey) 释放主键的句柄
End Sub

  运行此程序后,打开注册表,我们会发现在主键 HKEY_CURRENT_USER(在此主键下记录本机当前用户的一些信息)下,增加了子键"北信BITI\People",我们还可看到两个指定的键值名称都有正确的键值。从而完成了注册的任务。

  注:此程序在VB5.0中运行通过。

 

上下文章:

 

上一篇文章: 用VB设计更换屏幕保护的程序 下一篇文章: VB与大型数据库无数据源的连接

相关文章:

  • 教你如何用零框架技术加密网页
  • PS教程:看看如何用Photoshop把照片演变成水墨画
  • Photoshop教程:教你如何创出发丝的炫彩莹亮效果
  • vista隐蔽的注册表垃圾清理方法
  • 魔兽世界:如何更大限度的利用奥冲循环

相关软件:

  • Sundy注册表监控 V2.86 绿色版
  • 域名注册搜索专家 2.5
  • 全国计算机等级考试模拟软件(2006年全年使用)二级Visual Basic V9.0
  • windows XP 注册表优化文件reg下载
  • windows 2000 注册表优化下载
  • 米老鼠注册表减肥(完美清理注册表垃圾) v2.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有