100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 教你在VB中如何使用注册表

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

时间:2022-07-20 01:37:48

相关推荐

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

下面小编要向大家介绍下教你在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“"“"(,,,,)

PrivateDeclareFunctionRegCreateKeyLib“"“"(,,)

PrivateDeclareFunctionRegSetValueExLib“"“"(,,,,,)

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"

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

->

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。