欢迎光临
我们一直在努力

教你在vb中如何使用注册表_visualbasic教程

建站超值云服务器,限时71元/月

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="北信BITI\People"主键
  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"

  下面的函数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(在此主键下记录本机当前用户的一些信息)下,增加了子键"北信BITI\People",我们还可看到两个指定的键值名称都有正确的键值。从而完成了注册的任务。

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

->

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 教你在vb中如何使用注册表_visualbasic教程
分享到: 更多 (0)