Fehler beim auslesen von Einträgen in der Registry

  • Guten Abend Forum

    Spoiler anzeigen
    [autoit]

    Dim $Anwendung_[100]
    Dim $Pfad_[100]

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

    $Key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

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

    For $x = 1 To 100 Step + 1
    $Anwendung_[$x] = RegEnumVal($Key,$x)
    if @error = -1 Then ExitLoop
    $Pfad_[$x] = RegRead($Key,$Anwendung_[$x])
    $Anzahl = $x ;Anzahl Einträge
    Next

    For $anz = 1 To $Anzahl Step + 1
    MsgBox(0,"Eintrag "&$anz,$Anwendung_[$anz] & @CRLF & $Pfad_[$anz])
    Next

    [/autoit]

    Ich will mithilfe meines Scriptes die Einträge unter: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" auslesen!
    Dann sollten ungefähr folgende Einträge erscheinen:

    Spoiler anzeigen


    NvCplDaemon + Pfad
    SmartMenu + Pfad
    usw...
    ..
    ..

    Aber es erscheinen nicht die Einträge die ich auch wirklich unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run in regedit.exe finden.
    Sondern andere Einträge aus: "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"

    Nun ist meine Frage wieso wird nicht der richtige Schlüssel ausgelesen?

    Vielen Dank im Voraus

    Fabian

    Einmal editiert, zuletzt von Fabian (22. März 2010 um 17:48)

  • Also bei mir funzt das Script. Ich hab auch diesen WOW6432Node Ordner, aber den rührt er nicht an. Übrigens wenn du ein Array mit 100 deklarierst geht es von 0 bis 99, nicht 1 bis 100 ;) . Und Step + 1 kannste weglassen, das ist standardmäßig drin.

  • 32Bit Programme werden unter einem x64-System auf WOW6432Node umgelenkt.
    Also entweder als x64 kompilieren (ein Run in Scite ruft standardmäßig das Skript als x64 auf - deswegen sollte es bei dir klappen m-obi) oder den Key mal so schreiben:

    Code
    HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"