Zeit bis...

  • quick & dirty...

    Spoiler anzeigen
    [autoit]

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

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

    FileInstall ("C:\Users\Tim\Desktop\ICrememberCFG.ini" , "ICrememberCFG.ini")

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

    $t_min = ''
    $t_hour = ''
    $t_day = ''
    $check1 = False
    $Form1 = GUICreate("IC Remember", 202, 138, 192, 124)
    $Label1 = GUICtrlCreateLabel("0", 24, 8, 25, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel(" h", 40, 8, 30, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("0", 70, 8, 46, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel( "min", 122, 8, 67, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Bis zum Nächsten IC", 16, 64, 177, 28)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Einstellungen", 24, 96, 155, 33)
    GUISetState(@SW_SHOW)

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

    $Form2 = GUICreate("Einstellungen", 200, 147, 205, 137)
    $Checkbox1 = GUICtrlCreateCheckbox("Erinnern", 8, 8, 65, 17)
    $Input1 = GUICtrlCreateInput("5", 72, 8, 25, 21)
    $Label6 = GUICtrlCreateLabel("Minute/n vor IC", 104, 8, 78, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Erinnern", 8, 32, 65, 17)
    $Label7 = GUICtrlCreateLabel("Minute/n vor IC", 104, 32, 78, 17)
    $Input2 = GUICtrlCreateInput("1", 72, 32, 25, 21)
    $Label8 = GUICtrlCreateLabel("Erinnerung für die Bossrunde:", 8, 56, 143, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Erinnern", 8, 80, 65, 17)
    $Input3 = GUICtrlCreateInput("10", 72, 80, 25, 21)
    $Label9 = GUICtrlCreateLabel("Minute/n nach IC", 104, 80, 87, 17)
    $Button2 = GUICtrlCreateButton("Speichern", 56, 112, 75, 25)

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

    ;Setzen des Statusses f?r Er1
    $Er1z = IniRead ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , "5")
    GUICtrlSetData ($Input1 , $Er1z)
    $Er = IniRead ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , "1" )
    If $Er = 1 Then
    GUICtrlSetState ($Checkbox1, $GUI_CHECKED)
    EndIf
    ;Er2
    $Er2z = IniRead ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , "5")
    GUICtrlSetData ($Input2 , $Er2z)
    $Er2 = IniRead ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , "1" )
    If $Er2 = 1 Then
    GUICtrlSetState ($Checkbox2, $GUI_CHECKED)
    EndIf
    ;Er3
    $Er3z = IniRead ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , "5")
    GUICtrlSetData ($Input3 , $Er3z)
    $Er3 = IniRead ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , "1" )
    If $Er3 = 1 Then
    GUICtrlSetState ($Checkbox3, $GUI_CHECKED)
    EndIf

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

    _TimerDiffShow()
    AdlibRegister('_TimerDiffShow', 1000)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $Form1
    Exit
    Case Else
    ;Speichern der Einstellungen Er1
    $Cb1 = GUICtrlRead ($Checkbox1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , $Cb1)
    $Ip1 = GUICtrlRead ($Input1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , $Ip1)
    ;Er2
    $Cb2 = GUICtrlRead ($Checkbox2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , $Cb2)
    $Ip2 = GUICtrlRead ($Input2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , $Ip2)
    ;Er3
    $Cb3 = GUICtrlRead ($Checkbox3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , $Cb3)
    $Ip3 = GUICtrlRead ($Input3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , $Ip3)
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $nMsg[1])
    GUISwitch($Form1)
    EndSwitch
    Case $Button1
    GUISetState(@SW_SHOW, $Form2)
    GUISetState(@SW_HIDE, $Form1)
    GUISwitch($Form2)
    Case $Button2
    ;Speichern der Einstellungen Er1
    $Cb1 = GUICtrlRead ($Checkbox1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , $Cb1)
    $Ip1 = GUICtrlRead ($Input1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , $Ip1)
    ;Er2
    $Cb2 = GUICtrlRead ($Checkbox2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , $Cb2)
    $Ip2 = GUICtrlRead ($Input2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , $Ip2)
    ;Er3
    $Cb3 = GUICtrlRead ($Checkbox3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , $Cb3)
    $Ip3 = GUICtrlRead ($Input3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , $Ip3)
    ;Switch des Fensters
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $Form2)
    GUISwitch($Form1)
    EndSwitch

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

    ;auslesen der daten
    $until1 = GUICtrlRead ($Input1)
    $until2 = GUICtrlRead ($Input2)
    $aft = GUICtrlRead ($Input3)
    $after = 60 - $aft
    ;Erinnerung 1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $until1 and $check1 = False Then
    $check1 = Not $check1 ; Schalter, damit die Meldung nur einmal kommt muss für weitere Erinnerungen zum richtigen Zeitpunkt dann wieder auf den anderen Status gesetzt werden
    MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until1 & " Minuten!")
    EndIf
    ;Erinnerung 2
    ;~ If $Checkbox2 = $GUI_CHECKED and $timeh = 0 and $timem = $until2 Then
    ;~ MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until2 & " Minuten!")
    ;~ EndIf
    ;~ ;Erinnerung 3
    ;~ If $Checkbox3 = $GUI_CHECKED and $timeh = 1 and $timem = $after Then
    ;~ MsgBox (0, "Bossrunde" , "Die Bossrunde beginnt gleich!")
    ;~ EndIf
    WEnd

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

    Func _TimerDiffShow()
    $t_day = @MDAY
    $t_hour = Mod(1+Mod(@Hour,2),2)
    $t_min = 60 - @MIN
    If $t_hour >= 24 Then $t_hour = $t_hour - 24
    If GUICtrlRead($Label1) <> $t_hour Then GUICtrlSetData($Label1, $t_hour)
    If GUICtrlRead($Label3) <> $t_min Then GUICtrlSetData($Label3, $t_min)
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hmmm, das versteh ich nicht so ganz. Was muss ich noch mit $check1 machen, damit es wieder auf Anfangswert ist? Meine Sachen, die du als Kommentar gemacht hast, müssen die auch nochmal so umgeschrieben werden wie in Erinnerung1 ?

    Edit: Habs jetzt so gelöst, ich weiss leider nur noch nicht, wie ich die $check Variablen wieder auf "normal" zurücksetze.

    [autoit]

    ;Erinnerung 1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $until1 and $check1 = False Then
    $check1 = Not $check1 ; Schalter, damit die Meldung nur einmal kommt muss für weitere Erinnerungen zum richtigen Zeitpunkt dann wieder auf den anderen Status gesetzt werden
    MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until1 & " Minuten!")
    EndIf
    ;Erinnerung 2
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $until2 and $check2 = False Then
    $check2 = Not $check2 ; Schalter, damit die Meldung nur einmal kommt muss für weitere Erinnerungen zum richtigen Zeitpunkt dann wieder auf den anderen Status gesetzt werden
    MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until2 & " Minuten!")
    EndIf
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 1 and GUICtrlRead ($Label3) = $after and $check3 = False Then
    $check3 = Not $check3 ; Schalter, damit die Meldung nur einmal kommt muss für weitere Erinnerungen zum richtigen Zeitpunkt dann wieder auf den anderen Status gesetzt werden
    MsgBox (0, "Bossrunde" , "Es ist " & $until & "nach, die Bossrunde beginnt bald!")
    EndIf
    If GUICtrlRead ($Label1) = 1 and GUICtrlRead ($Label3) = 45 Then
    $check1 =
    $check2 =
    $check3 =
    EndIf

    [/autoit]

    6 Mal editiert, zuletzt von Sakurion (27. Juni 2011 um 15:03)

  • nochmal quick & dirty ...
    jetzt aber mal selber das Hirn ein wenig anstrengen ;)

    Spoiler anzeigen
    [autoit]

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

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

    FileInstall ("C:\Users\Tim\Desktop\ICrememberCFG.ini" , "ICrememberCFG.ini")

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

    $t_min = ''
    $t_hour = ''
    $t_day = ''
    $check1 = False
    $check2 = False
    $check3 = False
    $Form1 = GUICreate("IC Remember", 202, 138, 192, 124)
    $Label1 = GUICtrlCreateLabel("0", 24, 8, 25, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel(" h", 40, 8, 30, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("0", 70, 8, 46, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel( "min", 122, 8, 67, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Bis zum Nächsten IC", 16, 64, 177, 28)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Einstellungen", 24, 96, 155, 33)
    GUISetState(@SW_SHOW)

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

    $Form2 = GUICreate("Einstellungen", 200, 147, 205, 137)
    $Checkbox1 = GUICtrlCreateCheckbox("Erinnern", 8, 8, 65, 17)
    $Input1 = GUICtrlCreateInput("5", 72, 8, 25, 21)
    $Label6 = GUICtrlCreateLabel("Minute/n vor IC", 104, 8, 78, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Erinnern", 8, 32, 65, 17)
    $Label7 = GUICtrlCreateLabel("Minute/n vor IC", 104, 32, 78, 17)
    $Input2 = GUICtrlCreateInput("1", 72, 32, 25, 21)
    $Label8 = GUICtrlCreateLabel("Erinnerung für die Bossrunde:", 8, 56, 143, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Erinnern", 8, 80, 65, 17)
    $Input3 = GUICtrlCreateInput("10", 72, 80, 25, 21)
    $Label9 = GUICtrlCreateLabel("Minute/n nach IC", 104, 80, 87, 17)
    $Button2 = GUICtrlCreateButton("Speichern", 56, 112, 75, 25)

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

    ;Setzen des Statusses f?r Er1
    $Er1z = IniRead ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , "5")
    GUICtrlSetData ($Input1 , $Er1z)
    $Er = IniRead ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , "1" )
    If $Er = 1 Then
    GUICtrlSetState ($Checkbox1, $GUI_CHECKED)
    EndIf
    ;Er2
    $Er2z = IniRead ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , "5")
    GUICtrlSetData ($Input2 , $Er2z)
    $Er2 = IniRead ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , "1" )
    If $Er2 = 1 Then
    GUICtrlSetState ($Checkbox2, $GUI_CHECKED)
    EndIf
    ;Er3
    $Er3z = IniRead ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , "5")
    GUICtrlSetData ($Input3 , $Er3z)
    $Er3 = IniRead ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , "1" )
    If $Er3 = 1 Then
    GUICtrlSetState ($Checkbox3, $GUI_CHECKED)
    EndIf

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

    _TimerDiffShow()
    AdlibRegister('_TimerDiffShow', 1000)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $Form1
    Exit
    Case Else
    ;Speichern der Einstellungen Er1
    $Cb1 = GUICtrlRead ($Checkbox1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , $Cb1)
    $Ip1 = GUICtrlRead ($Input1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , $Ip1)
    ;Er2
    $Cb2 = GUICtrlRead ($Checkbox2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , $Cb2)
    $Ip2 = GUICtrlRead ($Input2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , $Ip2)
    ;Er3
    $Cb3 = GUICtrlRead ($Checkbox3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , $Cb3)
    $Ip3 = GUICtrlRead ($Input3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , $Ip3)
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $nMsg[1])
    GUISwitch($Form1)
    EndSwitch
    Case $Button1
    GUISetState(@SW_SHOW, $Form2)
    GUISetState(@SW_HIDE, $Form1)
    GUISwitch($Form2)
    Case $Button2
    ;Speichern der Einstellungen Er1
    $Cb1 = GUICtrlRead ($Checkbox1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "Er" , $Cb1)
    $Ip1 = GUICtrlRead ($Input1)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung1" , "ErZ" , $Ip1)
    ;Er2
    $Cb2 = GUICtrlRead ($Checkbox2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "Er" , $Cb2)
    $Ip2 = GUICtrlRead ($Input2)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung2" , "ErZ" , $Ip2)
    ;Er3
    $Cb3 = GUICtrlRead ($Checkbox3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "Er" , $Cb3)
    $Ip3 = GUICtrlRead ($Input3)
    IniWrite ("ICrememberCFG.ini" , "Erinnerung3" , "ErZ" , $Ip3)
    ;Switch des Fensters
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $Form2)
    GUISwitch($Form1)
    EndSwitch

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

    ;auslesen der daten
    $until1 = GUICtrlRead ($Input1)
    $until2 = GUICtrlRead ($Input2)
    $aft = GUICtrlRead ($Input3)
    $after = 60 - $aft
    ;Erinnerung 1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $until1 and $check1 = False Then
    $check1 = Not $check1
    MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until1 & " Minuten!")
    EndIf
    ;Erinnerung 2
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $until2 and $check2 = False Then
    $check2 = Not $check2
    MsgBox (0, "IC" , "Der nächste IC beginnt in " & $until2 & " Minuten!")
    EndIf
    ;Erinnerung 3
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 0 and GUICtrlRead ($Label3) = $after and $check3 = False Then
    $check3 = Not $check3
    MsgBox (0, "Bossrunde" , "Die Bossrunde beginnt gleich!")
    EndIf
    If GUICtrlRead ($Label1) = 1 and $check1 = True Then $check1 = False
    If GUICtrlRead ($Label1) = 1 and $check2 = True Then $check2 = False
    If GUICtrlRead ($Label1) = 1 and $check3 = True Then $check3 = False
    WEnd

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

    Func _TimerDiffShow()
    $t_day = @MDAY
    $t_hour = Mod(1+Mod(@Hour,2),2)
    $t_min = 60 - @MIN
    If $t_hour >= 24 Then $t_hour = $t_hour - 24
    If GUICtrlRead($Label1) <> $t_hour Then GUICtrlSetData($Label1, $t_hour)
    If GUICtrlRead($Label3) <> $t_min Then GUICtrlSetData($Label3, $t_min)
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Das könnte man denn doch bestimmt umgehen, wenn man einfach seine Computeruhrzeit verstellt oder?

  • Mein Hirn hab ich angeschaltet xP hatte mein Script noch als Edit hinterhergeschoben. Ich teste dann noch mal kurz, obs geht :D

    misterspeed

    Ja, wenn man die PC Uhr umstellt, wird das Programm beeinflusst :D

    Edit: Das Script erinnert mich noch nicht nach der geraden Stunde, habe grad keine Ahnung woran das liegen könnte oO Hier nochmal der Teil des Scripts für die 3.Erinnerung:

    [autoit]

    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED and GUICtrlRead ($Label1) = 1 and GUICtrlRead ($Label3) = $after and $check3 = False Then
    $check3 = Not $check3
    MsgBox (0, "Bossrunde" , "Die Bossrunde beginnt gleich!")
    EndIf
    ;<-----anderes Zugs xD------>
    If GUICtrlRead ($Label1) = 1 and GUICtrlRead ($Label3) = 45 and $check3 = True Then
    $check3 = False
    EndIf

    [/autoit]

    Einmal editiert, zuletzt von Sakurion (27. Juni 2011 um 15:29)