www.pudn.com > vbandreg1.zip > QValueEx.frm
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 3 'Fixed Dialog
Caption = "RegQueryValueEx 范例程序"
ClientHeight = 3465
ClientLeft = 3540
ClientTop = 2970
ClientWidth = 5055
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3465
ScaleWidth = 5055
ShowInTaskbar = 0 'False
Begin VB.CommandButton Command2
Caption = "显示资料"
Height = 495
Left = 3000
TabIndex = 2
Top = 2880
Width = 1935
End
Begin VB.TextBox Text1
Height = 2535
Left = 120
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 1
Top = 120
Width = 4815
End
Begin VB.CommandButton Command1
Caption = "调入VBandREG.reg 的资料"
Height = 495
Left = 120
TabIndex = 0
Top = 2880
Width = 1935
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Command1_Click()
Shell "RegEdit /S " & App.Path & "\VBandREG.reg", vbNormalFocus
End Sub
Private Sub Command2_Click()
Dim hKey As Long, ret As Long, lenData As Long, typeData As Long
Dim Name As String, NameList(0 To 5) As String
Dim i As Integer, j As Integer
Text1.Text = ""
ret = RegOpenKey(HKEY_CURRENT_USER, "Software\VBandREG", hKey)
If ret <> 0 Then Exit Sub
NameList(0) = ""
NameList(1) = "Str1": NameList(2) = "Str2": NameList(3) = "Str3"
NameList(4) = "LongData": NameList(5) = "BinaryData"
For i = 0 To UBound(NameList)
Name = NameList(i)
ret = RegQueryValueEx(hKey, Name, 0, typeData, ByVal vbNullString, lenData)
If ret <> 0 Then
RegCloseKey hKey
Exit Sub
End If
Select Case typeData
Case REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ
Dim S As String
S = String(lenData, Chr(0))
RegQueryValueEx hKey, Name, 0, typeData, ByVal S, lenData
If typeData = REG_SZ Then
S = Left(S, InStr(S, Chr(0)) - 1)
Text1.SelText = IIf(Name = "", "(预设值)", Name) & " = " & S & vbCrLf
ElseIf typeData = REG_EXPAND_SZ Then
Dim S2 As String
S2 = String(Len(S) + 256, Chr(0))
ExpandEnvironmentStrings S, S2, Len(S2)
S = Left(S2, InStr(S2, Chr(0)) - 1)
Text1.SelText = Name & " = " & S & vbCrLf
ElseIf typeData = REG_MULTI_SZ Then
Dim SArr() As String
MultiStringToStringArray S, SArr
For j = 0 To UBound(SArr)
Text1.SelText = Name & "(" & j & ") = " & SArr(j) & vbCrLf
Next
End If
Case REG_DWORD, REG_DWORD_BIG_ENDIAN
Dim L As Long
RegQueryValueEx hKey, Name, 0, typeData, L, lenData
Text1.SelText = Name & " = " & L & vbCrLf
Case REG_BINARY
ReDim bArr(0 To lenData - 1) As Byte
RegQueryValueEx hKey, Name, 0, typeData, bArr(0), lenData
Text1.SelText = Name & " = "
For j = 0 To UBound(bArr)
Text1.SelText = Hex(bArr(j)) & " "
Next
Text1.SelText = vbCrLf
End Select
Next
RegCloseKey hKey
End Sub