RegEnumVal von verschiedenen Unterschlüssel auslesen

  • Hy Leute.

    Ich möchte gerne von einem Schlüssel aus der Registry die Unterschlüssel auslesen. War ja nicht so schwer aber nun brauche ich von den ausgelesenen Unterschlüssel die Werte usw.
    Das Problem, die Unterschlüssel sind immer Random. Also nicht auf jedem Rechner gleich.

    Hier mal die Schleife womit ich die verschiedenen Unterschlüssel auslese.

    [autoit]

    for $r = 1 to 100
    $Reg_HKLM_BHO = RegEnumkey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects", $r)
    if @error <> 0 then ExitLoop
    filewriteline($file, $reg_HKLM_BHO)
    Next

    [/autoit]

    Nun die Schlüssel die in der $file stehen.

    Zitat

    {18DF081C-E8AD-4283-A596-FA578C2EBDC3}
    {30F9B915-B755-4826-820B-08FBA6BD249D}
    {ba14329e-9550-4989-b3f2-9732e92d17cc}
    {DBC80044-A445-435b-BC74-9C25C1C588A9}


    Und genau von diesen brauche ich jetzt direkt die Werte.

    Bitte bedenkt das Schlüssel auf einem anderem Rechner so aussehen könnten.

    Zitat


    {18DF081C-E8AD-4283-A596-FA578C2EBDC3}
    {B4F3A835-0E21-4959-BA22-42B3008E02FF}
    {DBC80044-A445-435b-BC74-9C25C1C588A9}
    {FFFFFFFF-CF4E-4F2B-BDC2-0E72E116A856}


    Also nie gleich.
    Jemand eine Idee wie ich das anstellen kann ? :)

    Einmal editiert, zuletzt von Larusso (16. Dezember 2010 um 21:25) aus folgendem Grund: Danke autobert

  • &quot;so?&quot;
    [autoit]

    For $i= 1 to 100
    $key = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
    If @error <> 0 then ExitLoop
    For $j = 1 To 100
    $value = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE" &"\"&$key, $j)
    If @error <> 0 Then ExitLoop
    ConsoleWrite($key & "-" & $value & @CRLF)
    Next
    Next

    [/autoit]
  • So in etwa?

    Spoiler anzeigen
    [autoit]

    Global $aReg[2][2]
    $aReg[0][0] = 1

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $aReg[$aReg[0][0]][0] = RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects", $aReg[0][0])
    $aReg[$aReg[0][0]][1] = RegEnumVal("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects", $aReg[0][0])

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then ExitLoop
    $aReg[0][0] += 1
    ReDim $aReg[$aReg[0][0] + 1][2]
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    $sFileTextTmp = ""

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $aReg[0][0]
    $sFileTextTmp &= $aReg[$i][0] & "|" & $aReg[$i][1] & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    FileWrite(@ScriptDir & "\Test.txt", $sFileTextTmp)

    [/autoit]
  • Danke euch beiden. Ich seh mir das mal genauer an und spiel ein bisschen rum :)
    Melde mich nochmal falls es troubles gibt.

  • An alle die eventuell mal das selbe "Problem" haben

    [autoit]

    for $r = 1 to 100
    $Reg_HKLM_BHO = RegEnumkey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects", $r); Liest alle Unterschlüssel (CLSIDs) aus
    if @error <> 0 then ExitLoop ; beendet Loop
    FileWriteLine($file, '"' & $reg_HKLM_BHO & '"' & " = " & RegRead("HKCR\CLSID" & "\" & $reg_HKLM_BHO, "") & ' = ' & RegRead("HKCR\CLSID" & "\"& $reg_HKLM_BHO & "\inprocserver32", ""))
    Next

    [/autoit]

    Output

    Zitat


    "{18DF081C-E8AD-4283-A596-FA578C2EBDC3}" = Adobe PDF Link Helper = C:\Program Files\Common Files\Adobe\Acrobat\ActiveX\AcroIEHelperShim.dll
    "{DBC80044-A445-435b-BC74-9C25C1C588A9}" = Java(tm) Plug-In 2 SSV Helper = D:\Programme\java\bin\jp2ssv.dll

    Danke euch für die Hilfe
    Muss ich das Präfix selber auf gelöst stellen ? ?(