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

虎子小幻想

虎子小幻想

2016-02-19 14:20

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

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

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"

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

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

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

  下面的函数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,"")

  下面的函数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中运行通过。

->

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
教你在VB中如何使用注册表

VB中如何实现注册表的读写

编程语言 网络编程
VB中如何实现注册表的读写

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VB.NET注册表编程

vb
VB.NET注册表编程

WindowsXP技巧:教你如何备份注册表

windows 操作系统
WindowsXP技巧:教你如何备份注册表

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

教你在注册表中修改Vista登陆声音

windows 操作系统
教你在注册表中修改Vista登陆声音

用VB5读写注册表实例

编程语言 网络编程
用VB5读写注册表实例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用jQuery扩展自写的 UI导航

用jQuery扩展自写的 UI导航

多层数据库开发二:单层和两层的应用程序

多层数据库开发二:单层和两层的应用程序
下拉加载更多内容 ↓