Nach INI Eintrag InputBox auf Disable stellen

  • Hallo AutoIt Spezialisten

    Mommentan steh ich vor einem kleinen Rätsel, und zwar will ich das ein betroffenes Input Feld vor Eintrag Beschreib bar ist, und nachdem eine INI angelegt wurde, dort nichtsmehr änderbar ist. Ausserdem soll das betroffene Feld dann auch noch den ini Eintrag auslesen.

    Betroffener Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <GUIEdit.au3>
    #include <IE.au3>
    #include <INet.au3>
    #include <GUIConstants.au3>

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

    Opt("GUICoordMode", 1)
    Opt("PixelCoordMode", 2)

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

    #Region ### START Koda GUI section ### Form=
    $antrag = GUICreate("TS² Beantragen", 287, 228, 193, 125)
    $angaben = GUICtrlCreateGroup("Angaben:", 8, 0, 273, 177)
    $admin = GUICtrlCreateInput("Account Name", 144, 16, 121, 21) ; <-- betreffendes Feld
    GUICtrlSetState($admin, $GUI_DISABLE)
    $slots = GUICtrlCreateCombo("Slots", 144, 48, 121, 25)
    GUICtrlSetData($slots, "25|50|75|100")
    $tsname = GUICtrlCreateInput("TS² Name", 144, 80, 121, 21)
    $day = GUICtrlCreateCombo("T", 144, 112, 41, 25)
    GUICtrlSetData($day, "01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31")
    $month = GUICtrlCreateCombo("M", 184, 112, 41, 25)
    GUICtrlSetData($month, "01|02|03|04|05|06|07|08|09|10|11|12")
    $year = GUICtrlCreateCombo("Jahr", 224, 112, 49, 25)
    GUICtrlSetData($year, "1960|1961|1962|1963|1964|1965|1966|1967|1968|1969|1970|1971|1972|1973|1974|1975|1976|1977|1978|1979|1980|1981|1982|1983|1984|1985|1986|1987|1988|1989|1990|1991|1992|1993|1994")
    $email = GUICtrlCreateInput("E-Mail Adresse", 144, 144, 121, 21)
    $accl = GUICtrlCreateLabel("Admin-Account Name:", 16, 16, 129, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $slotsl = GUICtrlCreateLabel("Slots Anzahl:", 16, 48, 78, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $tsnamel = GUICtrlCreateLabel("TS²-Name:*", 16, 80, 69, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $old = GUICtrlCreateLabel("Geburtsdatum:", 16, 112, 117, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $emaill = GUICtrlCreateLabel("E-Mail Adresse:", 16, 144, 92, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $achtung = GUICtrlCreateLabel("* Kann später im Webinterface geändert werden.", 8, 200, 207, 16)
    GUICtrlSetFont(-1, 7, 400, 0, "Arial")
    $send = GUICtrlCreateButton("Beantragen", 216, 184, 67, 25, 0)
    $text = GUICtrlCreateButton("Status abrufen", 208, 208, 75, 17, 0)
    $pass = GUICtrlCreateLabel("Passwort wird von uns für sie Generiert", 16, 184, 169, 16)
    GUICtrlSetFont(-1, 7, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select

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

    Case $msg = $GUI_EVENT_CLOSE
    GUIDelete()
    Exit

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

    Case $msg = $send
    GUICtrlSetState( $send, $GUI_Disable )
    #cs
    $oIE = _IECreate( "die..gibt..es..nicht../antrag/antrag.php?admin="&_INetExplorerCapable(GUICtrlread($admin))&"&slots="&_INetExplorerCapable(GUICtrlread($slots))&"&day="&_INetExplorerCapable(GUICtrlread($day))&"&month="&_INetExplorerCapable(GUICtrlread($month))&"&year="&_INetExplorerCapable(GUICtrlread($year))&"&tsname="&_INetExplorerCapable(GUICtrlread($tsname))&"&email="&_INetExplorerCapable(GUICtrlread($email)))
    _IELoadWaitTimeout( 3000 )
    _IELoadWait( $oIE )
    _IEQuit( $oIE )

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

    GUICtrlSetState( $send, $GUI_Enable )
    MsgBox(0, "Antrag abgeschickt", "Der Antrag wurde abgeschickt, Innerhalb der nächsten 24 Stunden bekommen Sie eine Antwort")

    Case $msg = $text
    InetGet( "http://die..gibt..es..nicht../antrag/files/"&GUICtrlRead($admin)&".html", @WorkingDir & "\"&GUICtrlRead($admin)&".html", 1 )
    ShellExecute(@WorkingDir&"\"&GUICtrlRead($admin)&".html", @WorkingDir )
    #ce
    EndSelect
    WEnd

    [/autoit]

    Hoffe Ihr könnt mir dabei helfen.

    mfg.
    Tak

    EDIT1: Durch das Missverständniss mit Simon habe ich die PW abfrage rausgemacht

  • Unter den iniread musst du GUICtrlSETstate($controllid,$GUI_DISABLE) Dann iniread und dann per guictrlsetdata den wert hineinschreiben

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <GUIEdit.au3>
    #include <IE.au3>
    #include <INet.au3>
    #include <GUIConstants.au3>

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

    Opt("GUICoordMode", 1)
    Opt("PixelCoordMode", 2)

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

    #Region ### START Koda GUI section ### Form=
    $antrag = GUICreate("TS² Beantragen", 287, 262, 193, 125)
    $angaben = GUICtrlCreateGroup("Angaben:", 8, 0, 265, 209)
    $admin = GUICtrlCreateInput("Account Name", 144, 16, 121, 21) ; <--- Betroffenes Input Feld
    $pass = GUICtrlCreateInput("passwort", 144, 48, 121, 21, BitOr($ES_PASSWORD, $ES_AUTOHSCROLL))
    $slots = GUICtrlCreateCombo("Slots", 144, 80, 121, 25)
    GUICtrlSetData($slots, "25|50|75|100")
    $tsname = GUICtrlCreateInput("TS² Name", 144, 112, 121, 21)
    $day = GUICtrlCreateCombo("T", 144, 144, 41, 25)
    GUICtrlSetData($day, "01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31")
    $month = GUICtrlCreateCombo("M", 184, 144, 41, 25)
    GUICtrlSetData($month, "01|02|03|04|05|06|07|08|09|10|11|12")
    $year = GUICtrlCreateCombo("J", 224, 144, 49, 25)
    GUICtrlSetData($year, "1960|1961|1962|1963|1964|1965|1966|1967|1968|1969|1970|1971|1972|1973|1974|1975|1976|1977|1978|1979|1980|1981|1982|1983|1984|1985|1986|1987|1988|1989|1990|1991|1992|1993|1994")
    $email = GUICtrlCreateInput("E-Mail Adresse", 144, 176, 121, 21)
    $accl = GUICtrlCreateLabel("Admin-Account Name:", 16, 16, 129, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $passl = GUICtrlCreateLabel("Admin-Passwort:", 16, 48, 97, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $slotsl = GUICtrlCreateLabel("Slots Anzahl:", 16, 80, 78, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $tsnamel = GUICtrlCreateLabel("TS²-Name:*", 16, 112, 69, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $old = GUICtrlCreateLabel("Geburtsdatum+Jahr:", 16, 144, 117, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $emaill = GUICtrlCreateLabel("E-Mail Adresse:", 16, 176, 92, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $achtung = GUICtrlCreateLabel("* Kann später im Webinterface geändert werden.", 8, 216, 207, 16)
    GUICtrlSetFont(-1, 7, 400, 0, "Arial")
    $send = GUICtrlCreateButton("Beantragen", 8, 232, 75, 25, 0)
    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select

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

    Case $msg = $GUI_EVENT_CLOSE
    GUIDelete()
    Exit

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

    Case $msg = $send
    GUICtrlSetState( $send, $GUI_Disable )
    ;$oIE = _IECreate( "page/antrag.php?admin="&_INetExplorerCapable(GUICtrlread($admin))&"&pass="&_INetExplorerCapable(GUICtrlread($pass))&"&slots="&_INetExplorerCapable(GUICtrlread($slots))&"&day="&_INetExplorerCapable(GUICtrlread($day))&"&month="&_INetExplorerCapable(GUICtrlread($month))&"&year="&_INetExplorerCapable(GUICtrlread($year))&"&tsname="&_INetExplorerCapable(GUICtrlread($tsname))&"&email="&_INetExplorerCapable(GUICtrlread($email)))
    ;_IELoadWaitTimeout( 3000 )
    ;_;IELoadWait( $oIE )
    ;_IEQuit( $oIE )
    GUICtrlSetState( $send, $GUI_Enable )

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

    IniWrite("ini/confic.ini", "antragssteller", "name", GUICtrlRead($admin)) ; <--- Wird in INI Geschrieben
    GUICtrlSEtSTAte($admin,$GUI_DISABLE)
    GUICtrlSETData($admin,IniRead("ini/confic.ini","antragssteller","name",""))
    MsgBox(0, "Antrag abgeschickt", "Der Antrag wurde abgeschickt, Innerhalb der nächsten 24 Stunden bekommen Sie eine Antwort")

    #cs ---------------------- Hier hab ich ein wenig angefangen, weiss nurnicht ob das so richtig ist
    Case $msg = $admin
    $admin1 = IniRead("ini/confic.ini", "antragssteller", "name", GUICtrlRead($admin))
    GuiCtrlSetData($admin, $admin1)

    If $admin1 Then
    GUICtrlSetState( $admin, $GUI_Disable )

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

    ElseIf $admin1 Then
    GUICtrlSetState( $admin, $GUI_Enable )
    EndIf

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

    #ce ----------------------------------------------------------------------------------------------------------

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

    EndSelect
    WEnd

    [/autoit]
  • Funktioniert eigetnlich das antrag stellen schon da ich es vergessen habe auf kommentar zu stellen

  • Also funzen tuts schon, aber Adresse ist falsch ^^

    Aber: Ich hab das jetzt eingefügt wie du gesagt hast.
    Nur soll, wenn das Programm geladen wird (Öffnen wie auch immer) das er aus der INI lädt, das ins $admin Feld einträgt (Wenn INI Vorhanden ist) und dann grad auf Disable.

    Wen aber keine INI vorhanden ist, soll es auf ENABLE stehen und mann kann dort den Namen eintragen, und beim nächsten ausführen (siehe zwei Zeilen drüber) geht das?


    Erstes Ausführen: Name eintragen, in Ini Schreiben, und Feld auf DISABLE
    Zweites Ausführen: Überprüfen ob INI Vorhanden ist, Ini Laden, ins Feld eintragen und Feld auf DISABLE

    Möglich?

  • @Tak es ging mir ja darum das kein Antrag gestellt wurde da ich es nicht will bitte lösche es

  • Das Problem mit ganz oben hat sich nun erledigt, habe es mit Do und Until gelöst.

    Nur das andere Problem ist jetzt, wenn der aus der ini laden soll, lässt sich die GUI nicht mehr schliessen.
    Anscheinend versucht das Programm es andauernt zu aktualisieren ob sich da was geändert hat.

    Ich weiss das es mit der GUI ein paar probs gab (siehe Posts darüber), aber ich hoffe Ihr habt ne lösung und könnt mir helfen.

    und nochmal sry simon wegen dem Missverständniss

    Mommentanes Script

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <GUIEdit.au3>
    #include <IE.au3>
    #include <INet.au3>
    #include <GUIConstants.au3>

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

    Opt("GUICoordMode", 1)
    Opt("PixelCoordMode", 2)

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

    #Region ### START Koda GUI section ### Form=
    Global $antrag = GUICreate("TS² Beantragen", 287, 220, 193, 125)
    $angaben = GUICtrlCreateGroup("Angaben:", 8, 0, 273, 177)
    $admin = GUICtrlCreateInput("", 145, 16, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $slots = GUICtrlCreateCombo("Slots", 144, 48, 121, 25)
    GUICtrlSetData($slots, "25|50|75|100")
    $tsname = GUICtrlCreateInput("TS² Name", 144, 80, 121, 21)
    $day = GUICtrlCreateCombo("T", 144, 112, 41, 25)
    GUICtrlSetData($day, "01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31")
    $month = GUICtrlCreateCombo("M", 184, 112, 41, 25)
    GUICtrlSetData($month, "Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember")
    $year = GUICtrlCreateCombo("Jahr", 224, 112, 49, 25)
    GUICtrlSetData($year, "1960|1961|1962|1963|1964|1965|1966|1967|1968|1969|1970|1971|1972|1973|1974|1975|1976|1977|1978|1979|1980|1981|1982|1983|1984|1985|1986|1987|1988|1989|1990|1991|1992|1993|1994")
    $email = GUICtrlCreateInput("E-Mail Adresse", 144, 144, 121, 21)
    $accl = GUICtrlCreateLabel("Admin-Account Name:", 16, 16, 129, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $slotsl = GUICtrlCreateLabel("Slots Anzahl:", 16, 48, 78, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $tsnamel = GUICtrlCreateLabel("TS²-Name:*", 16, 80, 69, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $old = GUICtrlCreateLabel("Geburtsdatum:", 16, 112, 117, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $emaill = GUICtrlCreateLabel("E-Mail Adresse:", 16, 144, 92, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $achtung = GUICtrlCreateLabel("* Kann später im Webinterface geändert werden.", 1, 200, 207, 16)
    GUICtrlSetFont(-1, 7, 400, 0, "Arial")
    $send = GUICtrlCreateButton("Beantragen", 216, 184, 67, 17, 0)
    $text = GUICtrlCreateButton("Status abrufen", 208, 200, 75, 17, 0)
    $pass = GUICtrlCreateLabel("Passwort wird von uns für sie Generiert", 1, 184, 169, 16)
    GUICtrlSetFont(-1, 7, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    Do
    $admin1 = IniRead("ini/confic.ini","antragssteller","name","")
    GuiCtrlSetData($admin, $admin1)
    Until Not FileRead("ini/confic.ini")
    $nick = InputBox("Nickname", "Nickname anlegen!")
    IniWrite("ini/confic.ini", "antragssteller", "name", $nick) ; <--- Wird in INI Geschrieben
    GUICtrlSetData($admin,IniRead("ini/confic.ini","antragssteller","name",""))

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

    While 1
    $msg = GUIGetMsg(1)

    Select

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

    Case $msg[0] = $send
    #cs
    GUICtrlSetState( $send, $GUI_Disable )
    $oIE = _IECreate( "GIBT..ES..NICHT/antrag/antrag.php?admin="&_INetExplorerCapable(GUICtrlread($admin))&"&slots="&_INetExplorerCapable(GUICtrlread($slots))&"&day="&_INetExplorerCapable(GUICtrlread($day))&"&month="&_INetExplorerCapable(GUICtrlread($month))&"&year="&_INetExplorerCapable(GUICtrlread($year))&"&tsname="&_INetExplorerCapable(GUICtrlread($tsname))&"&email="&_INetExplorerCapable(GUICtrlread($email)))
    _IELoadWaitTimeout( 3000 )
    _IELoadWait( $oIE )
    _IEQuit( $oIE )
    #ce
    GUICtrlSetState( $send, $GUI_Enable )
    MsgBox(0, "Antrag abgeschickt", "Der Antrag wurde abgeschickt, Innerhalb der nächsten 24 Stunden wird sich ein Admin mit Ihnen in Verbindung setzen")

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


    Case $msg[0] = $text
    #cs
    InetGet( "GIBT..ES..NICHT/antrag/files/"&GUICtrlRead($admin)&".html", @WorkingDir & "\"&GUICtrlRead($admin)&".html", 1 )
    ShellExecute(@WorkingDir&"\"&GUICtrlRead($admin)&".html", @WorkingDir )
    #ce

    Case $msg[0] = $GUI_EVENT_CLOSE
    If $msg[1] = $antrag Then Exit

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

    EndSelect
    WEnd

    [/autoit]

    Absenden funzt nicht, hab ich wieder sicherheitshalber ausgeklammert ^^

    mfg.
    Jochen

  • Ich weis, das gehört nich zum thema, aber so brauchst du net so viel in GUICtrlSetData zu schreiben, um die combos zu belegen:

    [autoit]

    $day = GUICtrlCreateCombo("T", 144, 112, 41, 25)
    For $i = 01 To 31 Step 1
    GUICtrlSetData($day, $i)
    Next
    $month = GUICtrlCreateCombo("M", 184, 112, 41, 25)
    For $i = 01 To 12 Step 1
    GUICtrlSetData($month, $i)
    Next
    $year = GUICtrlCreateCombo("Jahr", 224, 112, 49, 25)
    For $i = 1960 To 2000 Step 1
    GUICtrlSetData($year, $i)
    Next

    [/autoit]
  • So, da ich übersehen hatte, das es ja noch die "ExitLoop" funktion gibt, habe ich die auch nochmal schnell eingebaut.

    Problem aber hierbei ist, wenn das Script ausgeführt wird, sagt er ich müsste noch einen Nicknamen eintragen, obwohl schon einer vorhanden ist.

    Script Abschnitt:

    [autoit]

    Do
    $admin1 = IniRead("ini/confic.udf", "antragssteller", "name", 0)
    GuiCtrlSetData($admin, $admin1)
    ExitLoop
    Until Not FileExists("ini/confic.udf")
    $nick = InputBox("Nickname", "Nickname anlegen!")
    IniWrite("ini/confic.udf", "antragssteller", "name", $nick) ; <--- Wird in UDF Geschrieben
    $admin2 = IniRead("ini/confic.udf", "antragssteller", "name", 0)
    GUICtrlSetData($admin, $admin2)

    [/autoit]

    Zwar kann ich dan das fenster schliessen, nur soll er mich nach keinem Nick fragen, wenn schon einer in der "UDF" datei angegeben ist.

    Help pls komm einfach nicht mehr weiter....

    mfg.
    Jochen