Gui Einträge umwandeln

  • Hiho Community,

    hab da mal 2 fragen.

    1 Frage: Und zwar will ich bestimmte GUI Einträge (handelt um das Geburtsdatum) so umwandeln, das in der Ini einmal das Geburtsdatum steht und das aktuelle Alter. Nur weiss ich nicht wie ich dies umsetzen soll.

    2 Frage: Nachdem oben das in der ini Eingetragen wurde, soll sich das mit dem Computer Datum vergleichen und wenn der PC User unter 16 ist eine Fehlermeldung ausgeben.


    Dies soll eine kleine Massnahme sein um unter 16 Jährige das Spiel wie Serious Sam zu verbieten (Beim Starten oder beim Installieren).

    Hier mal der Code

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <GUIConstants.au3>

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

    #NoTrayIcon

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

    #Region ### START Koda GUI section ### Form=
    $old = GUICreate("Alter Verifizieren", 239, 76, 193, 125)
    $alter = GUICtrlCreateGroup("Alters Verifizierung", 0, 0, 233, 41)
    $day = GUICtrlCreateCombo("1", 8, 16, 41, 25)
    For $i=2 to 31
    GUICtrlSetData($day, $i)
    Next
    $month = GUICtrlCreateCombo("Januar", 56, 16, 81, 25)
    GUICtrlSetData($month, "Februar|März|April|Mai|Juni|Juli|August|Oktober|November|Dezember")
    $year = GUICtrlCreateCombo("1990", 144, 16, 81, 25)
    For $i=1991 to 2009
    GUICtrlSetData($year, $i)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $save = GUICtrlCreateButton("Speichern", 0, 48, 75, 25, 0)
    $reset = GUICtrlCreateButton("Reset", 80, 48, 75, 25, 0)
    $ausnahme = GUICtrlCreateButton("Ausnahmen", 160, 48, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg(0)

    If $msg=$save Then
    Save()
    ExitLoop
    EndIf

    If $msg=$reset Then
    Reset()
    EndIf

    If $msg=$ausnahmen Then
    Ausnahmen()
    EndIf

    If $msg=$GUI_Event_Close Then Exit
    WEnd

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

    Func Save()
    IniWrite("data/confic.ini", "alter", "day", GUICtrlRead($day))
    IniWrite("data/confic.ini", "alter", "month", GUICtrlRead($month))
    IniWrite("data/confic.ini", "alter", "year", GUICtrlRead($year))
    MsgBox(0, "Daten Gespeichert!", "Ihre Daten wurden Gespeichert!")
    EndFunc

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

    Func Reset()
    GUICtrlSetData($day, "1")
    GUICtrlSetData($month, "Januar")
    GUICtrlSetData($year, "1990")
    EndFunc

    [/autoit]

    Ich bedanke mich schonmal im Vorraus für Tipps wie ich dies lösen könnte.

    mfg.
    Tak|Jochen

  • Hallo tak,

    dein Skript lässt sich nicht starten:

    Spoiler anzeigen


    Hier das geänderte Skript:

    Spoiler anzeigen
    [autoit]

    #include-once ;unnötig, ausser du möchtest dieses Skript woanders includen
    #include <GUIConstants.au3>
    #include <date.au3>
    #Include <GuiComboBox.au3>

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

    #NoTrayIcon

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

    Const $IniPath = @ScriptDir & "\data\confic.ini" ;erspart Tipparbeit und ist leichter zu ändern (nur 1 Stelle)
    if not FileExists(@ScriptDir & "\data") then DirCreate(@ScriptDir & "\data") ;damit der Ordner auch wirklich vorhanden ist

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

    #Region ### START Koda GUI section ### Form=
    $old = GUICreate("Alter Verifizieren", 239, 76, 193, 125)
    $alter = GUICtrlCreateGroup("Alters Verifizierung", 0, 0, 233, 41)
    $day = GUICtrlCreateCombo("1", 8, 16, 41, 25)
    For $i=2 to 31
    GUICtrlSetData($day, $i)
    Next
    $month = GUICtrlCreateCombo("Januar", 56, 16, 81, 25)
    GUICtrlSetData($month, "Februar|März|April|Mai|Juni|Juli|August|Oktober|November|Dezember")
    $year = GUICtrlCreateCombo("1990", 144, 16, 81, 25)
    For $i=1991 to 2009
    GUICtrlSetData($year, $i)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $save = GUICtrlCreateButton("Speichern", 0, 48, 75, 25, 0)
    $reset = GUICtrlCreateButton("Reset", 80, 48, 75, 25, 0)
    $ausnahme = GUICtrlCreateButton("Ausnahmen", 160, 48, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg(0)

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

    If $msg=$save Then
    Save()
    ExitLoop ;willst du hier wirklich das Programm beenden (Aussprung aus MsgLoop-Schleife!!!)
    EndIf

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

    If $msg=$reset Then
    Reset()
    EndIf

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

    If $msg=$ausnahme Then ;Tippfehler n war zuviel
    Ausnahmen()
    EndIf

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

    If $msg=$GUI_Event_Close Then Exit
    WEnd

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

    Func Save()
    IniWrite($IniPath, "alter", "day", GUICtrlRead($day))
    IniWrite($IniPath, "alter", "month", GUICtrlRead($month))
    IniWrite($IniPath, "alter", "year", GUICtrlRead($year))
    $BirthDay = GUICtrlRead($year) & "/" & _GUICtrlComboBox_GetCurSel($month)+1 & "/" & GUICtrlRead($day) & " 00:00:00"
    ConsoleWrite($BirthDay & @CRLF)

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

    $age = _DateDiff("y", $BirthDay,_NowCalc())
    ConsoleWrite($age & @CRLF)
    IniWrite($IniPath, "alter", "age", GUICtrlRead($age))

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

    MsgBox(0, "Daten Gespeichert!", "Ihre Daten wurden Gespeichert!")
    EndFunc

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

    Func Reset()
    GUICtrlSetData($day, "1")
    GUICtrlSetData($month, "Januar")
    GUICtrlSetData($year, "1990")
    EndFunc

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

    Func Ausnahmen()
    MsgBox(0,"","Func Ausnahme")
    EndFunc

    [/autoit]

    da bei deiner Art von Auswahl auch falsche Geburtsdaten möglich sind, würde ich an deiner Stelle einen GuiDateTimePicker verwenden (_GUICtrlDTP_Create).

    mfg (Auto)Bert

  • Danke AutoBert,
    das hab ich gestern auch gemerkt das das Script nicht läuft.

    Alleine weil die Funktion "Ausnahme" nicht deklariert war.

    Aber ich bedanke mich schonmal für deine Antwort, kann es zum Glück nachher mal ausprobieren.

    Das

    [autoit]

    Const $IniPath = @ScriptDir & "\data\confic.ini" ;erspart Tipparbeit und ist leichter zu ändern (nur 1 Stelle)
    if not FileExists(@ScriptDir & "\data") then DirCreate(@ScriptDir & "\data") ;damit der Ordner auch wirklich vorhanden ist

    [/autoit]

    wusste ich zum Besipiel nicht das man es so Lösen kann.

    Naja man lernt nie aus :)

    [autoit]

    #include-once

    [/autoit]

    <--- hatte ich nur drinne, weil ich erst dachte das es nur für Administratoren änder bar ist.

    Naja #RequireAdmin war glaube hier das richtige xD


    aber thx nochmal, werde es wenn möglich ausprobieren.

    mfg.
    Tak|Jochen