Iniwrite iniread via GUI

  • Hallo, fleißig ist der Anfänger... Wieder brauche ich hilfe für ein Tutorial.
    Ich habe bereits die iniwrite und iniread funktion über einige tutorials angesehen.... jedoch finde ich keine lösung für mein problem:


    zu erst mein quellencode:

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

    #cs ;Einfache IniRead

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

    IniWrite("Config.ini", "Benutzerdaten", "Passwort", "Eingabe")
    $pwEingabe = IniRead("Config.ini", "Benutzerdaten", "Passwort", "Eingabe")

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

    Send ($pwEingabe)

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

    #ce

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

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

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

    $Mein Benutzerdaten Test = GUICreate("Form1", 345, 164, 192, 124)
    $Speichern = GUICtrlCreateButton("Speichern", 216, 8, 75, 25, 0)
    $PWEingabe = GUICtrlCreateInput("Dein Passwort", 88, 8, 121, 21)
    $Titel = GUICtrlCreateLabel("Name", 48, 8, 32, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $PWEingabe

    Case $Speichern
    IniWrite("Config.ini", "Benutzerdaten", "Passwort", $PWEingabe)

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Ich möchte praktisch name und passwort eingeben lassen, und daraus eine ini schreiben. (muss ich es mit einem speicher botton schreiben oder kann ich das auch irgendwie mit einem (kommt noch start bottom kombinieren) momentan habe ich der übersichtshalber nur ein feld für passwort - später eben noch den name....

    momentan schreibt er mir eine ini wenn ich speicher, jedoch kommt dann anstatt mein text, die zahl 4? :-(((

    5 Mal editiert, zuletzt von Rantanplan (4. August 2012 um 16:20)

    • Offizieller Beitrag
    [autoit]

    IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))

    [/autoit]


    Du hast GUICtrlRead vergessen.

    [autoit]

    $Mein Benutzerdaten Test

    [/autoit]


    Ist kein gültiger Variablennamen. Varnamen dürfen keine Leerzeichen haben.

  • hmmm danke :) ja mit dem fenster name bzw den leerzeichen habe ich schon rausgefunden, nur den älteren code kopiert.
    leider schreibt er immernoch eine 4 in die ini....


    [autoit]

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

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

    $MeinBenutzerdatenTest = GUICreate("Form1", 345, 164, 192, 124)
    $Speichern = GUICtrlCreateButton("Speichern", 216, 8, 75, 25, 0)
    $PWEingabe = GUICtrlCreateInput("Dein Passwort", 88, 8, 121, 21)
    $Titel = GUICtrlCreateLabel("Name", 48, 8, 32, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $PWEingabe
    IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))
    Case $Speichern
    IniWrite("Config.ini", "Benutzerdaten", "Passwort", $PWEingabe)

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Ich frag mich jetzt ehrlich warum du

    [autoit]

    IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))

    [/autoit]


    nicht nach

    [autoit]

    Case $Speichern

    [/autoit]


    eingefügt hast.

    Du hast die 4 in deiner Ini, weil du die ControlID anstatt dem Inhalt des Inputs abspeicherst.

  • Kann geschlossen werden, habe alle informationen gefunden. (musste GUICtrlRead bei beiden case eingeben) vielen dank

  • Spoiler anzeigen
    [autoit]

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

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

    $MeinBenutzerdatenTest = GUICreate("Form1", 345, 164, 192, 124)
    $Speichern = GUICtrlCreateButton("Speichern", 216, 8, 75, 25, 0)
    $PWEingabe = GUICtrlCreateInput("Dein Passwort", 88, 8, 121, 21)
    $Titel = GUICtrlCreateLabel("Name", 48, 8, 32, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    ;~ Case $PWEingabe
    ;~ IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))
    ;~ Was ist das?
    Case $Speichern
    IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Edit: Du brauchst gar nicht beide Case...

    • Offizieller Beitrag
    Zitat von Rantanplan

    Kann geschlossen werden, habe alle informationen gefunden. (musste GUICtrlRead bei beiden case eingeben) vielen dank


    Bearbeite deinen 1. Post und setze das Präfix auf gelöst.

  • Hi, Du kannst den Ort der ini am Anfang in eine Variable legen (siehe auch IniRead). ;)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    $ini = @ScriptDir & "\Config.ini"

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

    GUICreate("IniRead-IniWrite", 345, 165)
    $Speichern = GUICtrlCreateButton("Speichern", 216, 10, 75, 25, 0)
    $PWEingabe = GUICtrlCreateInput("Dein Name", 88, 10, 121, 21)
    $Ausgabe = GUICtrlCreateButton("Ausgabe", 216, 60, 75, 25, 0)
    GUICtrlCreateLabel("Name :", 48, 12, 32, 17)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Speichern
    IniWrite($ini, "Benutzerdaten", "Passwort", GUICtrlRead($PWEingabe))
    Case $Ausgabe
    $name = IniRead($ini, "Benutzerdaten", "Passwort", "Not Found")
    MsgBox(0, "Ausgabe", "Dein Name : " & $name & @TAB)
    EndSwitch
    WEnd
    ; Ende

    [/autoit]
  • Hmmm.... jetzt speichert wer alles richtig ab jedoch sendet er eine 4 anstatt den (richtig gespeicherten ini text) ach herje.... bitte helft mir rasch :)


    [autoit]


    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $Login
    IniWrite("Config.ini", "Benutzerdaten", "Mail", GUICtrlRead($Mail))
    IniWrite("Config.ini", "Benutzerdaten", "Passwort", GUICtrlRead($Passwort))

    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch

    Sleep (1000)
    WinActivate($hWnd)
    Sleep (1000)
    MouseClick("left",55,175,1)
    Sleep (1000)
    Send ($Mail)
    Sleep (1000)

    • Offizieller Beitrag

    Scheinbar hast du nix kapiert.

    Du sendest die ControlID und nich den Inhalt des Controls.

    Damit du es dir merkst:

    Benutze GUICtrlRead

  • Hi, hier ein Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    ;~ $GUI_EVENT_CLOSE —> GUIConstantsEx.au3

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

    Dim $ini = @ScriptDir & "\config.ini"
    Dim $name = IniRead($ini, "Benutzerdaten", "Name", "Kein Fund")

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

    GUICreate("IniRead-IniWrite - Tut", 250, 150)
    GUICtrlCreateLabel("Name", 10, 12, 28, 17)
    $iptInput = GUICtrlCreateInput("", 48, 10, 107, 20)
    GUICtrlSetData(-1, $name)
    $btnSave = GUICtrlCreateButton("Speichern", 165, 10, 75, 22)
    $lblOut = GUICtrlCreateLabel("", 52, 50, 107, 17)
    $btnOut = GUICtrlCreateButton("Ausgabe", 165, 50, 75, 22)
    $btnClose = GUICtrlCreateButton("Beenden", 165, 90, 75, 22)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $btnClose
    FileDelete($ini) ;i ini löschen
    ExitLoop
    Case $btnSave
    IniWrite($ini, "Benutzerdaten", "Name", GUICtrlRead($iptInput))
    Case $btnOut
    $name = IniRead($ini, "Benutzerdaten", "Name", "Kein Fund")
    GUICtrlSetData($lblOut, $name)
    EndSwitch
    WEnd
    ; Ende

    [/autoit]
  • Für alle die genauso Doof sind wie ich nochmal:

    $SendeMail = IniRead ("Config.ini", "Benutzerdaten", "Mail", GUICtrlRead($Mail))

    dann einfach:

    Send ($SendeMail)

    Close :)

  • Danke MfG RR04 :)


    Tut mir leid ich bin nicht der begabteste, aber ich mach trotzdem weiter. für alle doppelten doofen fragen schonmal entschduldigung ^^

  • habe jetzt den ganzen vormittag gegoogelt und geschaut um nicht unnötig auf den *** zu gehen :)) ich brauche jetzt aber doch hilfe weil ich nicht weiter komme.... meine inpurtboxen bzw meine iniwrite funktioniert einwandfrei.... jedoch beim aufrufen sendet er mit kein _ oder @ bzw er benutzt kein schift für sonderzeichen.... hier ein codeausschnit:


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

    Case $Speichern1 ;Legt die Benutzerdaten von FTP fest.

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

    IniWrite("Config.ini", "Benutzerdaten", "Mail", GUICtrlRead($Mail))

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

    ;-------------------------- funktioniert!

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

    Case $FTPlogin ;---------------------------------------------------------

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

    Opt("SendKeyDownDelay", 100)
    Opt("SendKeyDelay", 100)

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

    $SendeMail = IniRead ("Config.ini", "Benutzerdaten", "Mail", GUICtrlRead($Mail))

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

    ControlSend($hwnd, "", "", ($SendeMail))

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Du musst auch beim ControlSend das Control angeben. Aber du kannst auch GUICtrlSetData nehmen. Und die Klammern um die Variable brauchst du auch nicht.

  • wie müsste das dann im code aussehen? bin echt etwas "down" von der fehlersuche, wollte das nur eben funktionsfähig machen dann mal eine autoit pause :) was wäre denn besser die art wie bis jetzt oder mit GUICtrlSetData ?