1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Skripte

Timer

  • olfibits
  • 5. März 2017 um 18:33
  • olfibits
    Fortgeschrittener
    Beiträge
    169
    • 5. März 2017 um 18:33
    • #1

    Hallo,

    ich habe mit AutoIt einen kleinen Timer programmiert, weiß nicht ob das schon jemand gemacht hat, aber egal.
    GUI mit KODA, ist glaube ich selbsterklärend.

    Der Code funktioniert so:
    - Ich berechne die Summe aus den eingegebenen Stunden mal 3600, den Minuten mal 60 und den Sekunden und multipliziere diese mit 1000.
    - Diese Zahl bildet das Argument für Sleep( milliseconds )
    - Danach kommen im 200-Millisekunden-Abstand zwei kurze Piepser, in der Statuszeile die Nachricht "Status: Timeout" und anschließend eine Message-Box mit dem Inhalt "TIME OUT!!"

    Gleichzeitiges MessageBox-Öffnen und Piepen habe ich noch nicht gemacht, aber das ist ja vielleicht mal etwas. :)
    Oder etwa nicht... ?(?(?(

    Spoiler anzeigen


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=Form1.kxf
    $Form1 = GUICreate("Timer", 210, 89, 192, 124)
    $Label1 = GUICtrlCreateLabel("Select time (format: HH:MM:SS)", 8, 8, 154, 17)
    $Label2 = GUICtrlCreateLabel(":", 50, 44, 7, 17)
    $Label3 = GUICtrlCreateLabel(":", 98, 44, 7, 17)
    $Button1 = GUICtrlCreateButton("Go", 152, 39, 43, 25)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000080)
    $Input1 = GUICtrlCreateInput("00", 8, 40, 41, 21)
    $Input2 = GUICtrlCreateInput("00", 56, 40, 41, 21)
    $Input3 = GUICtrlCreateInput("00", 104, 40, 41, 21)
    $Label4 = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    $Label4 = GUICtrlCreateLabel("Status: Timer running.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $h = Int(GUICtrlRead($Input1))
    $m = Int(GUICtrlRead($Input2))
    $s = Int(GUICtrlRead($Input3))
    Sleep(1000*($h*3600+$m*60+$s))
    $Label4 = GUICtrlCreateLabel("Status: Timeout.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    Beep(500, 200)
    Sleep(20)
    Beep(500, 200)
    MsgBox(0,"Timeout","TIME OUT!")
    $Label4 = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    Case $GUI_EVENT_CLOSE
    Exit


    EndSwitch
    WEnd

    MfG
    Olfibits

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • alpines
    天照大神
    Beiträge
    4.209
    • 5. März 2017 um 19:36
    • #2

    Da du das in Skripte gepostet hast nehme ich mal an das du Feedback von uns erwartest.

    4 der 5 inkludierten Au3-Dateien brauchst du nicht. Wenn du statt $GUI_EVENT_CLOSE sogar -3 schreibst brauchst du keins der Includes.
    Benenne deine Variablen besser. $Label4, $Input2 sind absolut nicht aussagekräftig.

    Ich weiß nicht ob das Forum jetzt die Formatierung deines Scriptes gefressen hat, aber locker dein Code ein wenig auf und rücke immer korrekt ein.

    86152-alpi7958-png

    ►►► PassIt2 - Dateien zwischen PCs einfach und bequem übertragen!

    ► GUIScaler - GUIs automatisch zur DPI skalieren lassen (Windows 7 und Windows 10 Per-Monitor-DPI)

    ► TrackMania² Automated Server Controller (TMASECO) - Controller inklusive Manialinkpage-Support in AutoIt!

    ► Extensa - Hotkeys für unterschiedliche Eingabegeräte trennen

    ► Lust auf ein kleines Spiel in AutoIt? Snake, Tunnel, Tetris, NumberStrike, Pazaak (Star Wars)

    Der Rest meiner Werke

    A*-Algorithmus - Pathfinding

    C# / VB .NET DLLs erstellen und in AutoIt verwenden!

    Funktionsplotter

    Integralrechner
    Dezimal- zu Binär-Umrechner

    NumberConvert
    _SquareRoot
    _WinGetTitleEx
    Tap - BPM Counter
    Wake On Lan

    _ArraySortStable2D

    RingBuffer.au3

  • olfibits
    Fortgeschrittener
    Beiträge
    169
    • 5. März 2017 um 19:59
    • #3

    Hallo @alpines,

    Zitat von alpines

    Da du das in Skripte gepostet hast nehme ich mal an das du Feedback von uns erwartest.

    Sehr richtig! :thumbup:
    Diesmal hatte ich ausnahmsweise kein Problem, haha... :party:

    Zitat von alpines

    Benenne deine Variablen besser. $Label4, $Input2 sind absolut nicht aussagekräftig.

    OK. Das lag an den KODA FormDesigner Standards und ich habs der Einfachheit halber dabei gelassen.

    Zitat von alpines

    Ich weiß nicht ob das Forum jetzt die Formatierung deines Scriptes gefressen hat, aber locker dein Code ein wenig auf und rücke immer korrekt ein.

    Hat es nicht wirklich. Inline-Code ging nicht wirklich in der Vorschau und der Code-Button mit dem </> hat mich direkt auf die Startseite geschickt... :(
    Im SciTE funktioniert alles ohne Probleme... :)

    Also nochmal:

    AutoIt
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=Form1.kxf
    $Form1 = GUICreate("Timer", 210, 89, 192, 124)
    $labelSelectTime = GUICtrlCreateLabel("Select time (format: HH:MM:SS)", 8, 8, 154, 17)
    $labelDelim1 = GUICtrlCreateLabel(":", 50, 44, 7, 17)
    $labelDelim2 = GUICtrlCreateLabel(":", 98, 44, 7, 17)
    $buttonGo = GUICtrlCreateButton("Go", 152, 39, 43, 25)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000080)
    $hh = GUICtrlCreateInput("00", 8, 40, 41, 21)
    $mm = GUICtrlCreateInput("00", 56, 40, 41, 21)
    $ss = GUICtrlCreateInput("00", 104, 40, 41, 21)
    $statusline = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    	Case $buttonGo
    	   $statusline = GUICtrlCreateLabel("Status: Timer running.", 0, 72, 210, 17)
    	   GUICtrlSetBkColor(-1, 0xC0C0C0)
    	   $h = Int(GUICtrlRead($hh))
    	   $m = Int(GUICtrlRead($mm))
    	   $s = Int(GUICtrlRead($ss))
    	   Sleep(1000*($h*3600+$m*60+$s))
    	   $statusline = GUICtrlCreateLabel("Status: Timeout.", 0, 72, 210, 17)
    	   GUICtrlSetBkColor(-1, 0xC0C0C0)
    	   Beep(500, 200)
    	   Sleep(20)
    	   Beep(500, 200)
    	   MsgBox(0,"Timeout","TIME OUT!")
    	   $statusline = GUICtrlCreateLabel("Status: Ready.", 0, 72, 210, 17)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    		Case -3
    			Exit
    
    
    	EndSwitch
    WEnd
    Alles anzeigen

    Oder?


    Das mit -3 ... meinst du Case -3 anstatt $GUI_EVENT_CLOSE? Hab das mal so übernommen.

    LG
    Olfibits

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • alpines
    天照大神
    Beiträge
    4.209
    • 5. März 2017 um 20:03
    • #4
    Zitat von olfibits

    Das mit -3 ... meinst du Case -3 anstatt $GUI_EVENT_CLOSE? Hab das mal so übernommen.

    Dann kannst du dir auch die Includes klemmen wenn du da -3 nimmst.

    Würde dir dennoch raten dein Code ein wenig aufzulockern und nicht alles untereinander zu schreiben.

    86152-alpi7958-png

    ►►► PassIt2 - Dateien zwischen PCs einfach und bequem übertragen!

    ► GUIScaler - GUIs automatisch zur DPI skalieren lassen (Windows 7 und Windows 10 Per-Monitor-DPI)

    ► TrackMania² Automated Server Controller (TMASECO) - Controller inklusive Manialinkpage-Support in AutoIt!

    ► Extensa - Hotkeys für unterschiedliche Eingabegeräte trennen

    ► Lust auf ein kleines Spiel in AutoIt? Snake, Tunnel, Tetris, NumberStrike, Pazaak (Star Wars)

    Der Rest meiner Werke

    A*-Algorithmus - Pathfinding

    C# / VB .NET DLLs erstellen und in AutoIt verwenden!

    Funktionsplotter

    Integralrechner
    Dezimal- zu Binär-Umrechner

    NumberConvert
    _SquareRoot
    _WinGetTitleEx
    Tap - BPM Counter
    Wake On Lan

    _ArraySortStable2D

    RingBuffer.au3

  • olfibits
    Fortgeschrittener
    Beiträge
    169
    • 5. März 2017 um 20:52
    • #5

    OK

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™