RegKeys auslesen, anzeigen und bearbeiten

  • Hallo,

    würde mir gerne ein kleines Programm schreiben, welches mir bestimmte RegKeys eines Programmes ausliest. Die Daten eines Wertes sollten mir angezeigt werden, sodass ich diese ändern kann und z. B. mit einem Klick auf OK wieder in die Registry zurückschreiben kann. Ich schaffe es leider nicht mir die Daten so anzeigen zu lassen, dass ich sie bearbeiten und speichern kann. Vielleicht kann mir jemand dabei helfen. :)

    Danke und Gruß
    MasterPhil

  • [autoit]


    RegRead

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

    und

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

    RegWrite

    [/autoit]

    in der Hilfe und du hast eigentlich alles, was du brauchst. Einfacher geht das wirklich nicht.

  • RegRead und RegWrite ist mir klar. Das ist auch kein Problem. Ich möchte die ausgelesenen Daten aus einem Registry-Schlüssel aber im Programm angezeigt bekommen und die Möglichkeit haben diese zu bearbeiten und wieder in die Registry zu schreiben. Wie ich das machen kann, weiß ich leider nicht. In der Hilfe fand ich auch nichts.

  • Lad dir den entsprechenden Wert vom Schlüssel in ein InputFeld (Edit)
    z.B.

    [autoit]


    GuiCtrlSetData($Input1, $WertdesSchlüssels)

    [/autoit]

    und da kannste bearbeiten wie du willst.
    Danach mit Regwrite und in Verbindung z.B. mit

    [autoit]

    GuiCtrlRead($Input)

    [/autoit]

    wieder zurückschreiben.

    Das war jetzt ganz grob und nur eine mögliche Methode..Solche einfachen Sachen muss man nachschlagen und probieren. Nach dem probieren, wird hier effektiv geholfen, wenns immer noch hakt.
    Da sind die Forums-Weisheiten dann da (ich nicht, bin auch Anfänger).
    Aber das o.g. solltest mit der Hilfe usw. hinbekommen.

  • Bin ja nicht so:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("RegRead-/Write", 391, 100, 192, 124)
    $Input1 = GUICtrlCreateInput("", 56, 16, 217, 21)
    $Button1 = GUICtrlCreateButton("Lesen", 56, 48, 75, 25)
    $Button2 = GUICtrlCreateButton("Schreiben", 192, 48, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetData($Input1, RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Ghisler\Total Commander", "IniFileNameTest"))
    Case $Button2
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Ghisler\Total Commander","IniFileNameTest", "REG_SZ", GUICtrlRead($Input1))
    EndSwitch
    WEnd

    [/autoit]
  • Dabei dann evtl noch beachten, dass man für gewisse Registryzweige wie "Local Machine" Administratorrechte benötigt, also ein #requireadmin an den Scriptanfang sollte. "Current User" geht auch ohne Admin Rechte, aber dir gings ja anscheinend nur darum wie man gui's erstellt und Userinput der GUI weiterverarbeitet. Ergänzend zu Torni's Beispielscript würde ich dir aber dringendst dazu raten die vom User angegeben Strings vor dem Schreiben in die Registry zu überprüfen (z.B. wenn nur Ganzzahlen sinnvoll sind usw.), damit kein Murks in der Registry landet.

  • Torni:

    Danke für den Ansatz, damit hast du mir sehr weiter geholfen. Gibt es irgendwo ein Tutorial, wo man so grundlegende Dinge wie Funktionen, GUIs, Schleifen etc. lernen kann? Ich kann mit Autoit nur automatisierungen machen und kleinere Programme. Möchte aber auch größére und komplexere Dinge umsetzten können. Die deutsche Hilfe erklärt das Ganze aber nicht so richtig gut und verständlich. Kannst du mir ein paar Tipps geben, wie ich mich richtig in AutoIT einarbeiten kann?

  • Hilfe lesen, ausprobieren und nochmal probieren.

    Ich bin wie gesagt selbst noch ein Anfänger und habe mir dank der Hilfe hier im Forum schon manches Programm "gemacht", das mir viel Arbeit erleichtert.
    Die Community hier ist echt klasse und hier wird einem geholfen. Aber auch selber probieren ist wichtig.

    Von TUTS halte ich selber nicht viel, ich probiere gerne und sitze auch schon - wie heute - 3 Stunden an einem Problem und habs aber selber hinbekommen.

  • Würde dir empfehlen das Buch von peethebee mal anzuschaun, denke da werden die wichtigsten Grundlagen ausführlich und anhand von kleinen Beispielen erklärt:

    https://autoit.de/index.php?page=Thread&amp;threadID=11898


    Hier im Forum findest du auch einige Tutorials, unter anderem zum Umgang mit Arrays. GUI Erstellung ist relativ simpel anhand des Koda Form Designers von Scite erlernbar. Hier einfach einige Testguis erstellen, dir die Hilfe Einträge der verwendeten Funktionen und die zugehörigen Beispielscripte ansehen. Das sollte eigentlich recht selbst erklärend sein. Irgendwann wirst du vermutlich dann wie jeder fortgeschrittene Neuling auch einige speziellere Dinge benötigen, dafür ist dann das Forum hier da. Heute hast du ja zum Beispiel schonmal gelernt wie man Eingabefelder ausliest. ;)

    Mir persönlich hat es auch geholfen die Probleme von anderen zu lesen und mir anhand der vorgeschlagenen Lösungen neues Wissen anzueignen, völlig ohne selbst "dumme" Fragen stellen zu müssen. Nennt sich dann Eigeninitiative. Dabei lernt man meist auch mehr, als wegen jeder Kleinigkeit nachzufragen und sich fertige Lösungen die man evtl. noch nicht einmal versteht vorkauen zu lassen. Selbstverständlich sind Fragen hier stets willkommen, aber es macht immer einen besseren Eindruck, wenn man sehen kann, dass sich derjenige bereits damit befasst hat und zumindestens einen Teil selbst beträgt, wie zum Beispiel sein fehlerhaftes Script zu posten oder konkrete Fragen zu eine Funktion zu stellen, die er trotz des Lesens der zugehörige Hilfe nicht verstanden hat.