当前位置:中国易下载软件教材中心文章中心编程语言VB语言 → 如何取得与设定、删除Registry内的值

如何取得与设定、删除Registry内的值

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2007-8-21 1:01:41
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
喜欢这些内容嘛,请告诉你身边的朋友,易下载中心-QQ资源-itnetcn.com一起享受这份乐趣,本站内容来源互联网
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

如何取得与设定、删除Registry内的值qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
作者: 王国荣 qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
  程式启动时,会在 "HKEY_LOCAL_MACHINEkjRegistry" Subkey 底下写入:(此时qBn海岸线网络安全资讯站
会呼叫 SetDefaultValue 及 SetValue 函数)qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
        资料类型        名称            资料qBn海岸线网络安全资讯站
        =========       ==============  ================================qBn海岸线网络安全资讯站
                        (预设值)        kj Registry MasterqBn海岸线网络安全资讯站
        REG_SZ          StringData      这是字串qBn海岸线网络安全资讯站
        REG_MULTI_SZ    MultiString     字串一(0) +字串二+Chr(0) +Chr(0)qBn海岸线网络安全资讯站
        REG_DWORD       LongData        99999qBn海岸线网络安全资讯站
        REG_BINARY      BinaryData      11 22 33 44 AA BB CC DDqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
  接着当您按下「显示所有 Value 时」(command1)时,程式会读出来所有 Value 并且qBn海岸线网络安全资讯站
  显示在ListBox 之中(此时会呼叫 GetDefaultValue、GetValueByIndex 函数)。qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
  最後当程式结束时,则会删除以上所有的 Value(此时会呼叫 GetValueByIndex 函数qBn海岸线网络安全资讯站
及 RegDeleteValue API 函数)。qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
注释:请放3个CommandBox一个ListBox於form上qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Option ExplicitqBn海岸线网络安全资讯站
注释:qBn海岸线网络安全资讯站
Private Sub Form_Load()qBn海岸线网络安全资讯站
    Dim hKey As Long, ret As LongqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
    ret = SetDefaultValue(HKEY_LOCAL_MACHINE, "SOFTWAREkjRegistry", _qBn海岸线网络安全资讯站
                       "kj Registry Master")qBn海岸线网络安全资讯站
    ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWAREkjRegistry", hKey)qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
    ret = SetValue(hKey, "StringData", REG_SZ, "这是字串")qBn海岸线网络安全资讯站
    ret = SetValue(hKey, "MultiString", REG_MULTI_SZ, "字串一" + Chr(0) _qBn海岸线网络安全资讯站
          + "字串二" + Chr(0))qBn海岸线网络安全资讯站
    ret = SetValue(hKey, "LongData", REG_DWORD, 99999)qBn海岸线网络安全资讯站
    ret = SetValue(hKey, "BinaryData", REG_BINARY, _qBn海岸线网络安全资讯站
                    Array(&H11, &H22, &H33, &H44, &HAA, &HBB, &HCC, &HDD), 8)qBn海岸线网络安全资讯站
    Call RegCloseKey(hKey)qBn海岸线网络安全资讯站
    MsgBox "已写入资料到登录资料库中,您可以开启 RegEdit 加以检查!"qBn海岸线网络安全资讯站
End SubqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Private Sub Command1_Click() 注释: 显示所有 ValueqBn海岸线网络安全资讯站
    Dim Index As Long, ret As Long, hKey As LongqBn海岸线网络安全资讯站
    Dim bArr() As Byte, Name As String, vType As LongqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
    ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWAREkjRegistry", hKey)qBn海岸线网络安全资讯站
    ret = GetValueByIndex(hKey, Index, Name, bArr, vType)qBn海岸线网络安全资讯站
    While retqBn海岸线网络安全资讯站
        If Len(Name) = 0 Then Name = "(预 设 值)"qBn海岸线网络安全资讯站
        List1.AddItem Name & vbTab & ValueOutput(bArr, vType)qBn海岸线网络安全资讯站
        Index = Index + 1qBn海岸线网络安全资讯站
        ret = GetValueByIndex(hKey, Index, Name, bArr, vType)qBn海岸线网络安全资讯站
    WendqBn海岸线网络安全资讯站
    Call RegCloseKey(hKey)qBn海岸线网络安全资讯站
End SubqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Private Sub Form_Unload(Cancel As Integer)qBn海岸线网络安全资讯站
    Dim Index As Long, ret As Long, hKey As LongqBn海岸线网络安全资讯站
    Dim bArr() As Byte, Name As String, vType As LongqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
    ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWAREkjRegistry", hKey)qBn海岸线网络安全资讯站
    ret = GetValueByIndex(hKey, Index, Name, bArr, vType)qBn海岸线网络安全资讯站
    While retqBn海岸线网络安全资讯站
        Call RegDeleteValue(hKey, Name)qBn海岸线网络安全资讯站
        注释: 不可以执行 Index = Index + 1,因为 Index = 0 的 Value 已删除,qBn海岸线网络安全资讯站
        注释: 後面的 Index 向前递减,所以 Index = 0 又可以读到 Value,qBn海岸线网络安全资讯站
        注释: 其实在这一个 While 回圈中,您可以将 Index 变数改成 0qBn海岸线网络安全资讯站
        ret = GetValueByIndex(hKey, Index, Name, bArr, vType)qBn海岸线网络安全资讯站
    WendqBn海岸线网络安全资讯站
    Call RegCloseKey(hKey)qBn海岸线网络安全资讯站
    MsgBox "kjRegistry 的 Value 已删除,利用 RegEdit 检查时,记得要先执行功能的「检视/重新整理」!"qBn海岸线网络安全资讯站
End SubqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Function ValueOutput(bArr() As Byte, ByVal vType As Long) As StringqBn海岸线网络安全资讯站
    Dim S As String, S2 As String, length As Integer, L As LongqBn海岸线网络安全资讯站
    Dim i As Integer, sArr() As StringqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
    Select Case vTypeqBn海岸线网络安全资讯站
        Case REG_SZ, REG_EXPAND_SZqBn海岸线网络安全资讯站
            ByteArrayToString bArr, SqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
            注释: 呼叫 ExpandEnvironmentStringsqBn海岸线网络安全资讯站
            S2 = String(Len(S) + 256, Chr(0))qBn海岸线网络安全资讯站
            length = ExpandEnvironmentStrings(S, S2, Len(S2))qBn海岸线网络安全资讯站
            S = Left(S2, length - 1)qBn海岸线网络安全资讯站
            ValueOutput = "Type=String, Data=" & SqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
        Case REG_MULTI_SZqBn海岸线网络安全资讯站
            ByteArrayToMultiString bArr, sArrqBn海岸线网络安全资讯站
            ValueOutput = "Type=MultiString, Data="qBn海岸线网络安全资讯站
            For i = LBound(sArr) To UBound(sArr)qBn海岸线网络安全资讯站
                ValueOutput = ValueOutput & sArr(i) & ", "qBn海岸线网络安全资讯站
            Next iqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
        Case REG_DWORD, REG_DWORD_BIG_ENDIANqBn海岸线网络安全资讯站
            ByteArrayToLong bArr, LqBn海岸线网络安全资讯站
            ValueOutput = "Type=Long, Data=" & LqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
        Case REG_BINARYqBn海岸线网络安全资讯站
            ValueOutput = "Type=Byte Array, Data="qBn海岸线网络安全资讯站
            For i = LBound(bArr) To UBound(bArr)qBn海岸线网络安全资讯站
                ValueOutput = ValueOutput + Format(Hex(bArr(i)), "00")qBn海岸线网络安全资讯站
            Next iqBn海岸线网络安全资讯站
    End SelectqBn海岸线网络安全资讯站
End FunctionqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Private Sub Command2_Click()qBn海岸线网络安全资讯站
    Unload MeqBn海岸线网络安全资讯站
    EndqBn海岸线网络安全资讯站
End SubqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站
Private Sub Command3_Click()qBn海岸线网络安全资讯站
Dim hKey As Long, resu As LongqBn海岸线网络安全资讯站
Dim aa As BooleanqBn海岸线网络安全资讯站
Dim bytary() As ByteqBn海岸线网络安全资讯站
Dim str5 As StringqBn海岸线网络安全资讯站
resu = RegOpenKey(HKEY_LOCAL_MACHINE, _qBn海岸线网络安全资讯站
    "SOFTWAREMicrosoftWindowsCurrentVersion", hKey)qBn海岸线网络安全资讯站
aa = GetValue(hKey, "ProductId", bytary, REG_SZ)qBn海岸线网络安全资讯站
Call ByteArrayToString(bytary, str5)qBn海岸线网络安全资讯站
Debug.Print str5qBn海岸线网络安全资讯站
Call RegCloseKey(hKey)qBn海岸线网络安全资讯站
End SubqBn海岸线网络安全资讯站
qBn海岸线网络安全资讯站