欢迎大家访问我的网站!

VB读取注册表数值

思博2022-09-30 03:38:37471编程开发

Option Explicit

Const REG_SZ As Long = 1

Const REG_DWORD As Long = 4

Const HKEY_CLASSES_ROOT = &H80000000

Const HKEY_CURRENT_USER = &H80000001

Const HKEY_LOCAL_MACHINE = &H80000002

Const HKEY_USERS = &H80000003

Const ERROR_NONE = 0

Const ERROR_BADDB = 1

Const ERROR_BADKEY = 2

Const ERROR_CANTOPEN = 3

Const ERROR_CANTREAD = 4

Const ERROR_CANTWRITE = 5

Const ERROR_OUTOFMEMORY = 6

Const ERROR_INVALID_PARAMETER = 7

Const ERROR_ACCESS_DENIED = 8

Const ERROR_INVALID_PARAMETERS = 87

Const ERROR_NO_MORE_ITEMS = 259

Const KEY_ALL_ACCESS = &H3F

Const REG_OPTION_NON_VOLATILE = 0

Const SPI_SETDESKWALLPAPER = 20

Const SPIF_SENDWININICHANGE = &H2

Const SPIF_UPDATEINIFILE = &H1

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long

Private Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long

Private Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long

Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long

Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long

Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)

Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)

'璇诲彇閿€?

Private Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long

Dim cch As Long

Dim lrc As Long

Dim lType As Long

Dim lValue As Long

Dim sValue As String

On Error GoTo QueryValueExError

lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)

If lrc <> ERROR_NONE Then Error 5

Select Case lType

Case REG_SZ:

sValue = String(cch, 0)

lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)

If lrc = ERROR_NONE Then

vValue = Left$(sValue, cch)

Else

vValue = Empty

End If

Case REG_DWORD:

lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)

If lrc = ERROR_NONE Then vValue = lValue

Case Else

lrc = -1

End Select

QueryValueExExit:

QueryValueEx = lrc

Exit Function

QueryValueExError:

Resume QueryValueExExit

End Function

Private Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)

Dim lRetVal As Long

Dim hKey As Long

Dim vValue As Variant

lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)

lRetVal = QueryValueEx(hKey, sValueName, vValue)

QueryValue = vValue

RegCloseKey (hKey)

End Function

Private Sub Command1_Click()

Label1.Caption = QueryValue(HKEY_CURRENT_USER, "Software\Tencent\WeChat", "FileSavePath")

End Sub


转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://lxkj.vip/?id=79

网友评论