VB修改注册表

前端之家收集整理的这篇文章主要介绍了VB修改注册表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

把下面的内容存成.bas(模块)文件,以后只要把这个文件加入你的工程就可以
直接用这些函数

'-----------------
'ADVAPI32
'-----------------
'functionprototypes,constants,andtypedefinitions
'forWindows32-bitRegistryAPI

PublicConstHKEY_CLASSES_ROOT=&H80000000
PublicConstHKEY_CURRENT_USER=&H80000001
PublicConstHKEY_LOCAL_MACHINE=&H80000002
PublicConstHKEY_USERS=&H80000003
PublicConstHKEY_PERFORMANCE_DATA=&H80000004
PublicConstERROR_SUCCESS=0&

'RegistryAPIprototypes

DeclareFunctionRegCloseKeyLib"advapi32.dll"(ByValHkeyAsLong)A
sLong
DeclareFunctionRegCreateKeyLib"advapi32.dll"Alias"RegCreateKeyA"
(ByValHkeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)As
Long
DeclareFunctionRegDeleteKeyLib"advapi32.dll"Alias"RegDeleteKeyA"
(ByValHkeyAsLong,ByVallpSubKeyAsString)AsLong
DeclareFunctionRegDeleteValueLib"advapi32.dll"Alias"RegDeleteVal
ueA"(ByValHkeyAsLong,ByVallpValueNameAsString)AsLong
DeclareFunctionRegOpenKeyLib"advapi32.dll"Alias"RegOpenKeyA"(By
ValHkeyAsLong,phkResultAsLong)AsLong

DeclareFunctionRegQueryValueExLib"advapi32.dll"Alias"RegQueryVal
ueExA"(ByValHkeyAsLong,ByVallpValueNameAsString,ByVallpReser
vedAsLong,lpTypeAsLong,lpDataAsAny,lpcbDataAsLong)AsLong

DeclareFunctionRegSetValueExLib"advapi32.dll"Alias"RegSetValueEx
A"(ByValHkeyAsLong,ByValReservedAs
Long,ByValdwTypeAsLong,ByValcbDataAsLong)AsL
ong
PublicConstREG_SZ=1'Unicodenulterminat
edstring
PublicConstREG_DWORD=4'32-bitnumber

PublicSubSaveKey(HkeyAsLong,strPathAsString)
Dimkeyhand&
r=RegCreateKey(Hkey,strPath,keyhand&)
r=RegCloseKey(keyhand&)
EndSub

PublicFunctionGetString(HkeyAsLong,strPathAsString,strValueAs
String)AsString

DimkeyhandAsLong
DimdatatypeAsLong
DimlResultAsLong
DimstrBufAsString
DimlDataBufSizeAsLong
DimintZeroPosAsInteger
r=RegOpenKey(Hkey,keyhand)
lResult=RegQueryValueEx(keyhand,strValue,0&,lValueType,ByVal0&,
lDataBufSize)
IflValueType=REG_SZThen
strBuf=String(lDataBufSize,"")
lResult=RegQueryValueEx(keyhand,ByValstrBuf,
lDataBufSize)
IflResult=ERROR_SUCCESSThen
intZeroPos=InStr(strBuf,Chr$(0))
IfintZeroPos>0Then
GetString=Left$(strBuf,intZeroPos-1)
Else
GetString=strBuf
EndIf
EndIf
EndIf
EndFunction


PublicSubSaveString(HkeyAsLong,strValueAsStr
ing,strdataAsString)
DimkeyhandAsLong
DimrAsLong
r=RegCreateKey(Hkey,keyhand)
r=RegSetValueEx(keyhand,REG_SZ,ByValstrdata,Len(str
data))
r=RegCloseKey(keyhand)
EndSub


FunctionGetDword(ByValHkeyAsLong,ByValstrPathAsString,ByVals
trValueNameAsString)AsLong
DimlResultAsLong
DimlValueTypeAsLong
DimlBufAsLong
DimlDataBufSizeAsLong
DimrAsLong
DimkeyhandAsLong

r=RegOpenKey(Hkey,keyhand)

'Getlength/datatype
lDataBufSize=4

lResult=RegQueryValueEx(keyhand,strValueName,lBuf,
lDataBufSize)

IflResult=ERROR_SUCCESSThen
IflValueType=REG_DWORDThen
GetDword=lBuf
EndIf
'Else
'Callerrlog("GetDWORD-"&strPath,False)
EndIf

r=RegCloseKey(keyhand)

EndFunction

FunctionSaveDword(ByValHkeyAsLong,ByVal
strValueNameAsString,ByVallDataAsLong)
DimlResultAsLong
DimkeyhandAsLong
DimrAsLong
r=RegCreateKey(Hkey,keyhand)
lResult=RegSetValueEx(keyhand,REG_DWORD,lDat
a,4)
'IflResult<>error_successThenCallerrlog("SetDWORD",False)
r=RegCloseKey(keyhand)
EndFunction

PublicFunctionDeleteKey(ByValHkeyAsLong,ByValstrKeyAsString)

DimrAsLong
r=RegDeleteKey(Hkey,strKey)
EndFunction

PublicFunctionDeleteValue(ByValHkeyAsLong,ByValstrPathAsStrin
g,ByValstrValueAsString)
DimkeyhandAsLong
r=RegOpenKey(Hkey,keyhand)
r=RegDeleteValue(keyhand,strValue)
r=RegCloseKey(keyhand)
EndFunction

--
DimfishyAsFriend

原文链接:https://www.f2er.com/vb/263314.html

猜你在找的VB相关文章