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

2016-02-19 14:20 11 1 收藏

下面图老师小编要向大家介绍下教你在VB中如何使用注册表,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - 编程语言 】

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

  一、常数定义和API申明(我们会在使用该API时对它进行说明):  PrivateConstHKEY_CLASSES_ROOT=&H80000000主键
  PrivateConstHKEY_CURRENT_USER=&H80000001主键
  PrivateConstSTANDARD_RIGHTS_ALL=&H1F0000
  PrivateConstKEY_ENUMERATE_SUB_KEYS=&H8
  PrivateConstKEY_SET_VALUE=&H2
  PrivateConstKEY_CREATE_SUB_KEY=&H4
  PrivateConstKEY_QUERY_VALUE=&H1
  PrivateConstKEY_NOTIFY=&H10
  PrivateConstKEY_CREATE_LINK=&H20
  PrivateConstSYNCHRONIZE=&H100000
  PrivateConstKEY_ALL_ACCESS=((STANDARD_RIGHTS_ALLOrKEY_QUERY_VALUEOrKEY_SET_VALUEOrKEY_CREATE_SUB_KEYOrKEY_ENUMERATE_SUB_KEYSOrKEY_NOTIFYOrKEY_CREATE_LINK)And(NotSYNCHRONIZE))
  PrivateConstREG_MULTI_SZ=7
  PrivateConstERROR_SUCCESS=0&
  PrivateConstREAD_CONTROL=&H20000
  PrivateConstREG_SZ=1
  PrivateConstREG_DWORD=4
  PrivateConstREG_EXPAND_SZ=2
  PrivateConstREG_BINARY=3
  PrivateConstREG_DWORD_BIG_ENDIAN=5
  PrivateConstREG_DWORD_LITTLE_ENDIAN=4
  PrivateConstREG_NONE=0
  PrivateDeclareFunctionRegOpenKeyExLib“advapi32.dll"Alias“RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegCreateKeyLib“advapi32.dll"Alias“RegCreateKeyA"(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegSetValueExLib“advapi32.dll"Alias“RegSetValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByValReservedAsLong,ByValdwTypeAsLong,lpDataAsAny,ByValcbDataAsLong)AsLong
  PrivateDeclareFunctionRegQueryValueExLib"advapi32.dll"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,lpTypeAsLong,lpDataAs

  Any,lpcbDataAsLong)AsLongPrivateDeclareFunctionRegCloseKeyLib"advapi32.dll"(ByValhKeyAsLong)AsLong
  

  二、将下列代码放在窗体的Load事件中
  PrivateSubForm_Load()
  DimhKeyAsLong主键的句柄
  DimlpDataAsString查询得到的键值
  DimSizeOfDataAsLong键值的长度
  DimValueTypeAsLong键值的类型
  SizeOfData=150
  Dimreturn_OpenKeyAsLong函数调用的返回值
  DimPriKeyAsString主键
  DimKeyValue1,KeyValue2AsString键值名称
  PriKey="北信BITIPeople"主键
  KeyValue1="教授"键值名称
  KeyValue2="学生"键值名称
  下面的函数RegOpenKeyEx取得一个句柄hKey

return_OpenKey=RegOpenKeyEx(HKEY_CURRENT_USER,"",0,KEY_ALL_ACCESS,hKey)
   
  下面的函数RegCreateKey建立一个主键,如此键已存在,则打开它IfRegCreateKey(hKey,PriKey,hKey)ERROR_SUCCESSThen
  MsgBox"create"&PriKey&"Failed"
  ExitSub
  EndIf
  
  DimKeyDataAsString键值
  KeyData="500"

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

IfRegSetValueEx(hKey,KeyValue1,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)ERROR_SUCCESSThen
  MsgBox"SetValue"&KeyValue1&"Failed"
  ExitSub
  EndIf
  KeyData="15020"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

IfRegSetValueEx(hKey,KeyValue2,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)ERROR_SUCCESSThen
  MsgBox"SetValue"&KeyValue2&"Failed"
  ExitSub
  EndIf
  
  return_OpenKey=RegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,0&,SizeOfData)
  lpData=String(SizeOfData+1,"")

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

IfRegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,ByVallpData,SizeOfData)ERROR_SUCCESSThen
  MsgBox"Query"&KeyValue1&"Failed"
  EndIf
  RegCloseKey(hKey)释放主键的句柄
  EndSub

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

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

->

来源:http://www.tulaoshi.com/n/20160219/1606771.html

延伸阅读
标签: 电脑入门
注册表虽然是通过各个根键和子键来分类管理各种信息,但具体数据信息还是依靠键值项和键值来实现。在注册表中绝大多数分支或子项中还包含了一个或若干个值项,每个值项又对应于一定数据类型的一组数据,这就是键值项和键值,打开注册表编辑器后,选择一个分支或子项,在注册表编辑器的右侧窗口中显示的就是键值项和键值(如图1)。 图1 细心...
JDK1.4引入了Preferences类, 用于设置用户的首选项。 对于Windows平台就是操作注册表了, 下面的程序就可以操作注册表了,更多请参考jdk的api帮助文档。 import Java.io.*; import java.util.prefs.*; public class PrefsDemo { public static void main(String args[]) { String keys[] = {"ke...
标签: windows 操作系统
别以为Windows XP用了这么多年,你就对它的系统注册表了如指掌,看看本文,也许有些地方连老鸟也没接触过呢,而新手则可以趁此机会,在微软Longhorn正式出来之前,对XP有个更加清楚的认识,从而进阶成为高手。对于这些知识,我们还是从基础开始吧。 注册表基础: 系统文件夹: 名称 路径 含义 AppData C:\Windows...
标签: 电脑入门
Win9X篇 C:WindowsSYSTEM.DAT和C:WindowsUSER.DAT 这2个就是注册表文件 .另外,系统每天启动的第一次都会做一个备份,储存在C:WINDOWSSYSBCKUP下,以rb***.cab命名,在DOS下可以用scanreg /restore还原。 第一次安装完以后,在C盘根目录下还有一个SYSTEM.1ST文件作为第一次启动的备份。 Win2000/XP/NET篇 其中用户配置文件保存在根目录Do...
标签: 电脑入门
1.最简单的方法:开始--运行中输入regedit就可以了。2.另外一种方法:在Windows目录下找到regedit.exe,直接双击也可以打开。 随后是Win2000/XP。因为2000/XP在设计时加上了权限这一概念,所以在这2个系统里面有2种方法可以打开注册表编辑器。一种是直接在开始 ... 1.最简单的方法:开始--运行中输入regedit就可以了。 2.另外一种方法:在Win...

经验教程

191

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部