Autohotkey | Ini Datei soll auch nach einem Keybinder aus und an start bleiben

  • Hallo.


    Ich habe eine Ini Datei erstellt. Doch wenn ich auf Speichern drücke und danach den Keybinder aus und wieder an mache, wird dies dann nicht gespeichert.
    Weiß einer was man da machen muss?

  • Du erstellt einen Button und eine Editbox und weist diesen einene Variable zu, beispielsweise "gSave".



    Gui, Add, Edit, x2 y30 w360 h30 vNickname, %nickname%
    Gui, Add, Button, x2 y90 w370 h40 gSave, Speichern

    Dann schreibst du weiter unten im Code das:



    Save:
    GuiControlGet, nickname ,,Nickname
    IniWrite,%nickname% , Daten.ini, Ingame Daten, Nickname
    IniRead, Nickname, Daten.ini, Ingame Daten, Nickname
    return


    Jetzt kannst du schon auf das gespeicherte zugreifen mit %nickname%



    1::
    Msgbox, Die Ini funktioniert!, Dein Nickname lautet %nickname%
    return

  • Danke das du erstmal hilfst:
    Aber wenn ich das versuche geht es nicht also es speichert nicht ab:


    Save:
    Gui, submit, nohide
    IniWrite, %name%, einstellungen.ini, Einstellungen, Name:
    IniRead,name,einstellungen.ini,Einstellungen,Name
    IniWrite, %tel%, einstellungen.ini, Einstellungen, Telefonnummer:
    IniRead,tel,einstellungen.ini,Einstellungen,Telefonnummer
    IniWrite, %gewinn%, einstellungen.ini, Einstellungen, Gewinn:
    IniWrite, %treffpunkt%, einstellungen.ini, Einstellungen, Treffpunkt:
    IniWrite, %wf1%, einstellungen.ini, Einstellungen, Wortsalat Frage 1
    IniWrite, %wa1%, einstellungen.ini, Einstellungen, Wortsalat Antwort 1
    IniWrite, %wf2%, einstellungen.ini, Einstellungen, Wortsalat Frage 2
    IniWrite, %wa2%, einstellungen.ini, Einstellungen, Wortsalat Antwort 2
    IniWrite, %wf3%, einstellungen.ini, Einstellungen, Wortsalat Frage 3
    IniWrite, %wa3%, einstellungen.ini, Einstellungen, Wortsalat Antwort 3
    Msgbox, Einstellungen: Deine Einstellungen wurden gespeichert!
    return

  • Dir fehlt unter den IniWrite fast überall die IniRead um die Datei auszulesen. Versuch das mal:




    Save:
    Gui, submit, nohide
    IniWrite, %name%, einstellungen.ini, Einstellungen, Name:
    IniRead,name,einstellungen.ini,Einstellungen,Name:
    IniWrite, %tel%, einstellungen.ini, Einstellungen, Telefonnummer:
    IniRead,tel,einstellungen.ini,Einstellungen,Telefonnummer:
    IniWrite, %gewinn%, einstellungen.ini, Einstellungen, Gewinn:
    IniRead,gewinn,einstellungen.ini,Einstellungen,Gewinn:
    IniWrite, %treffpunkt%, einstellungen.ini, Einstellungen, Treffpunkt:
    IniRead,treffpunkt,einstellungen.ini,Einstellungen,Treffpunkt:
    IniWrite, %wf1%, einstellungen.ini, Einstellungen, Wortsalat_Frage_1
    IniRead,wf1,einstellungen.ini,Einstellungen,Wortsalat_Frage_1
    IniWrite, %wa1%, einstellungen.ini, Einstellungen, Wortsalat_Antwort_1
    IniRead,wa1,einstellungen.ini,Einstellungen,Wortsalat_Antwort_1
    IniWrite, %wf2%, einstellungen.ini, Einstellungen, Wortsalat_Frage_2
    IniRead,wf2,einstellungen.ini,Einstellungen,Wortsalat_Frage_2
    IniWrite, %wa2%, einstellungen.ini, Einstellungen, Wortsalat_Antwort_2
    IniRead,wa2,einstellungen.ini,Einstellungen,Wortsalat_Antwort_2
    IniWrite, %wf3%, einstellungen.ini, Einstellungen, Wortsalat_Frage_3
    IniRead,wf3,einstellungen.ini,Einstellungen,Wortsalat_Frage_3
    IniWrite, %wa3%, einstellungen.ini,Einstellungen, Wortsalat_Antwort_3
    IniRead,wa3,einstellungen.ini,Einstellungen,Wortsalat_Antwort_3
    Msgbox, Einstellungen: Deine Einstellungen wurden gespeichert!
    return



    //Handy

  • Ja, aber ich will ja nur das " Name und Telefonnummer " gespeichert wird

  • Dann versuch mal Name und Telefon so wie ich es dir oben geschrieben haben einzufügen. Sollte Funktionieren.


    //Pack mal das noch über IniRead



    GuiControlGet, name ,,Name:
    GuiControlGet, tel ,,Telefonnummer:

  • Bei IniWirte mach den Doppelpunkt bei z.B. Name weg. Weiteres kommt nach dem "IniRead" kein Komma, sondern nur ein Leerzeichen und dann die Variable. Wenn du das so schreibst wie ich wird es wie folgt abgespeichert:


    [Einstellungen]
    Name=%name%
    Sprich wenn der Name Jeff ist, ist es so:


    [Einstellungen]
    Name=Jeff


    IniWrite %name%, einstellungen.ini, Einstellungen Name


    Wenn du nun den Namen auslesen möchtest, muss du:
    IniRead, Name, einstellungen.ini, Einstellungen Name 
    machen.


    Würde eher weniger mit "GuiControlGet" arbeiten. Sondern einfach wie du es schon hast: Gui, submit, nohide


    Bezüglich deinem Code:



    Sollte normalerweise funktionieren.


    Wenn es noch immer nicht funktioniert, schicke mal das komplette, damit man den Zusammenhang sieht. Und damit man testen kann, warum es nicht funktioniert.

  • Geht leider immer noch nicht. Habe es so gemacht wie du es gesagt hast:


    Save:
    Gui, submit, nohide
    IniWrite %name%, einstellungen.ini, Einstellungen, Name
    IniRead, Name,einstellungen.ini,Einstellungen,Name
    IniWrite %tel%, einstellungen.ini, Einstellungen, Telefonnummer
    IniRead, Tel,einstellungen.ini, Einstellungen, Telefonnummer
    IniWrite %gewinn%, einstellungen.ini, Einstellungen, Gewinn
    IniWrite %treffpunkt%, einstellungen.ini, Einstellungen, Treffpunkt
    IniWrite %wf1%, einstellungen.ini, Einstellungen, Wortsalat Frage 1
    IniWrite %wa1%, einstellungen.ini, Einstellungen, Wortsalat Antwort 1
    IniWrite %wf2%, einstellungen.ini, Einstellungen, Wortsalat Frage 2
    IniWrite %wa2%, einstellungen.ini, Einstellungen, Wortsalat Antwort 2
    IniWrite %wf3%, einstellungen.ini, Einstellungen, Wortsalat Frage 3
    IniWrite %wa3%, einstellungen.ini, Einstellungen, Wortsalat Antwort 3
    Msgbox, Einstellungen: Deine Einstellungen wurden gespeichert!
    return

  • hm... ich schreibe mal auf, wie ich es machen würde:


    Ich gehe z.B. davon aus, dass ich einen Hotkey im Gui Fenster von jedem selbst bestimmen lasse:

    Code
    Gui, Add, Hotkey, x342 y39 w120 h20 vkey, %key%


    vkey ist die Variable, die festgelegt wurde.
    %key% ist der Key, der in das Hotkey Fenster eingegeben wird. z.B. nehmen wir nun "!1" = Alt + 1
    Wenn wir dies so haben, schreiben wir das in eine Ini Datei. Das geschieht wie folgt:


    Code
    IniWrite %key%, daten.ini, Hotkeys, Key

    Es wird nun eine .ini Datei erstellt, die heißt: "daten.ini"
    und es steht folgender Text darin:
    [Hotkeys]
    Key=


    Um den Key, bzw. den Inhalt der Variable im Script wiederzugeben, müssen wir diese auslesen. Das funktioniert so:


    Code
    IniRead, key, daten.ini, Hotkeys, Key
    
    
    Wobei ich noch eine if-Abfrage hinzufüge die wie folgt geht:
    
    
    if(FileExist(daten.ini))
    {
       IniRead, key, daten.ini, Hotkeys, Key
    }

    hast du beim Save Button das "Save" groß oder klein geschrieben, da AHK eigentlich zwischen groß und klein unterscheidet.


    Weil ich habe dort bei mir z.B. gspeichern stehen, weswegen ich auch dann speichern: schreibe. Eigentlich ist alles richtig, was du da stehen hast.
    Hatte das selbe Problem. Konnte es lösen, indem ich das Script nochmals neu schrieb. Oft hilft das weiter.
    __________________________________________________________



    So ist es in meinem Script geregelt:



    Eventuell hilft dir das weiter. :)