Frage zur Registrysuche (Bezug: https://autoit.de/thread/18054-registry-durchsuchen-nach-einem-schl%C3%BCssel) - ANFÄNGER

  • Werte Profis,

    ich möchte den Wert des Eintrags "IsRadioOn" aus der Registry auslesen, der sich an folgender Stelle in meiner Registry befindet:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony\001A:7D:DA7115]

    "IsRadioOn"=dword:00000000

    Allerdings variert der rot-markierte Teil (verständlicherweise) je nach PC bzw. Bluetooth-Equipment, ansonsten ist der Pfad immer gleich.

    Bei meiner Recherche bin ich u.a. auf diesen Beitrag gestoßen: "https://autoit.de/thread/18054-registry-durchsuchen-nach-einem-schl%C3%BCssel"

    Leider übersteigt das alles bei Weitem mein Anfänger-Verständnis!

    Kann mir bitte jemand helfen, wie ich eine möglichst einfache Funktion erhalte, mit der ich den Wert auslesen kann, wobei der rot markierte Teil entsprechend variabel sein muss.

    Vielen Dank im Vorraus!


  • Folgendes aus der HILFE-DATEI könnte die Lösung sein:

    Sucbegriff in Hilfe & Forum: RegRead

    Code
    #include <MsgBoxConstants.au3>
    
    Local $sFilePath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
    MsgBox($MB_SYSTEMMODAL, "Die Programmdateien sind gespeichert in:", $sFilePath)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Vielen Dank Alina.

    Trotz meiner sehr bescheidenen AutoIt-Kenntnisse ist mir die RegRead Funktion gut bekannt.

    Ggf. habe ich ja auch mein Problem doch noch nicht klar genug umrissen. Ich möchte einen Eintrag aus der Registry auslesen,

    wobei ein Teil des "Pfades" leider variabel ist. Ich brauche somit eine Funktion, die - in diesem Beispiel:

    Local $sFilePath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony\???", "IsRadioOn")

    erkennt, dass der Wert "IsRadioOn" im Unterschlüssel "001A:7D:DA7115" gesucht werden muss. Wobei es auf meinem Laptop

    z.B. der Unterschlüssel "01815:XY:Z:01" sein könnte ...

    Deshalb habe ich mich an die Rekursive -Suche "herangetastet", die ich jedoch nicht vollständig durchblicke und die mir auch in

    der Version Oskar vom 23./24. Feb 2010 kein Ergebnis liefert. Vermutlich, weil hier nach einem Wert und nicht nach einem weiteren

    Unterschlüssel gesucht wird.

    Trotzdem DANKE!

    MfG Kilo

  • Moombas

    Danke, aber das ist ja noch komplizierter ...

    Ich weiß auch nicht, ob mein gesuchter Unterschlüssel (hier: "001A:7D:DA7115") immer das gleiche "Format" - sprich Zahlen, Buchstaben, Doppelpunkte, usw. hat.

    Da muss ich ja unzählige StringRegExp-Formate berücksichtigen ... (die ich leider auch nicht beherrsche :( )

    Ich habe mir eine andere Lösung zusammengestümpert!

    Spoiler anzeigen

    $Search = ""

    For $x = 1 To 999

    $Reg_Key = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony", $x)

    If @error <> 0 then ExitLoop

    For $y = 1 To 999

    $Reg_Value = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony\" & $Reg_Key, $y)

    If @error <> 0 then ExitLoop

    If $Reg_Value = "IsRadioOn" Then

    $Search = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Cambridge Silicon Radio\Harmony\" & $Reg_Key & "\", $Reg_Value)

    ExitLoop

    EndIf

    Next

    If $Search <> "" Then ExitLoop

    Next

  • Eine, soweit ich Dich verstehe, ähnliche Frage, habe ich im englischen Forum mal beantwortet :

    Search word regedit HKEY_CLASSES_ROOT
    Hi, I would like to find a word in regedit HKEY_CLASSES_ROOT \ if it is possible (for example: I am looking for the word DesktopAppInstaller)
    www.autoitscript.com

    (Autor der Funktion _RegSearch ist @PsaltyDS aus dem EN-Forum)

    Hier erneut der aktuelle Quellcode, da Links bei Foumsupdates häufig verloren gehen können ;) :

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Moin,

    ich schaue mir das z.Zt. mit einem 'SurfBook' an, habe kein AutoIt und kann nichts testen. Trotzdem könnte die folgende Funktion in die richtige Richtung gehen:

    Es ist oft nicht schlecht, Universallösungen zu haben. Manchmal reicht aber auch 'eine Nummer kleiner'. ;)

  • Moin

    Genau, das ist es! Vermutlich habe ich das nicht klar genug zum Ausdruck gebracht - sorry!

    Das ist mein Part. :rofl:


    Klar ausdrücken ist nicht immer leicht. Aber wir haben alle einen Mund zum nachfragen und es wird hier keinem negativ ausgelegt.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl