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
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. OhnePlan

Beiträge von OhnePlan

  • Richtig debuggen?

    • OhnePlan
    • 17. Februar 2024 um 06:28

    Guten Morgen zusammen,

    ich habe von

    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y

    erfahren und es mal in ein Projekt eingebunden. Nun spuckt er mir einige Meldungen, die ich leider nicht verstehe. Zum Beispiel:

    "P:\AutoIT\LIB\Copyright.au3"(73,73) : warning: $PIC_INFO: declared, but not used in func.

    schaue ich mir den Abschnitt nun an:

    Local $__PIC_INFO = GUICtrlCreateIcon($_dll,$__icoNumber, 80, 5, 80, 80)

    Die Variable ist doch in Verwendung?

    Nicht über die seltsame Variablen Namen wundern, das ist schon relativ alt, und damals hatte ich noch nicht das wissen ^^. Muss ich mal ändern...


    Vielen Dank,

    Gruß OhnePlan

  • Gesamtzeit richtig berechnen

    • OhnePlan
    • 16. Februar 2024 um 18:12

    Alina vielen Dank für deine Hilfe, das bringt mich leider nicht weiter.

    Die aktuelle Spielzeit habe ich ermittelt, auch wenn ich das Spiel schließe wird die Spielzeit auf die Gesamtspielzeit addiert und beim Neustart des Autoit-Programmes korrekt eingelesen und angezeigt.
    Was allerdings nicht funktioniert: Während ich spiele, möchte ich die Gesamtspielzeit ermittelt. Sprich die gespeicherte Gesamtspielzeit + Aktuelle Spielzeit und das eben immer wenn ich auf den Gesamtspielzeit-Button klicke. Außerdem muss dann, bei beenden des Spieles (und die _StopGame Funktion greift) die Gesamtspielzeit richtig berechnet und gespeichert werden. Ich wäre sehr dankbar, wenn jemand das Script ausführt um evtl. das Problem besser zu verstehen. Ich komme hier leider nicht weiter. Notfalls passe ich es auch an, sodass nicht in die Registry sondern in eine TXT oder INI Datei geschrieben wird.

    Vielen Dank,

    Gruß OhnePlan

  • Gesamtzeit richtig berechnen

    • OhnePlan
    • 16. Februar 2024 um 14:31

    Gesamtspielzeit von aktueller Spielesitzung

    Habe ich. Es geht um die Gesamtspielzeit seit ich jemals das Spiel gestartet habe. Führe dazu doch einfach mal mein Script aus. Wenn du weißt, wie es funktioniert, dann bitte erleuchte mich ^^. Ich bekomm es nicht hin.

  • Gesamtzeit richtig berechnen

    • OhnePlan
    • 16. Februar 2024 um 13:40

    Hallo SOLVE-SMART ,

    danke für das kleine Feedback, ist "gefixt". $_sPlayTimeColor war noch ein Überbleibsel vom großen Projekt.


    Hallo Alina ,

    das ist nicht das Problem, so ähnlich funktioniert auch alles. Ich will nur die Gesamtspielzeit errechnen, während ich Spiele. Die Gesamtspielzeit wenn das Spiel geschlossen wird funktioniert.

  • Gesamtzeit richtig berechnen

    • OhnePlan
    • 16. Februar 2024 um 09:07

    Hallo liebe Community,

    ich arbeite an einem größeren Projekt in dem ich unter anderem die Aktuelle Spielzeit und die Gesamtspielzeit berechnen will. Ich habe das nun in einem kleinen Test-Projekt aufgebaut. Leider funktioniert die Berechnung der Gesamtspielzeit während das Spiel (in dem Fall das Programm Notepad) läuft nicht, und ich komme einfach nicht weiter. Evtl kann mir hier ja jemand helfen.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <Process.au3>
    #include <Date.au3>
    
    Global $regKey = "HKEY_CURRENT_USER\Software\aMyCompany\MyGame"
    Global $regValuePlayTime = "TotalPlaytime"
    Global $REG_STR_TYP = "REG_SZ"
    Global $iStartTime = 0
    Global $iWarningCounter = 1
    Global $iTimeToWarning = 60   ; Anzahl der Minuten bis zur nächsten Warnung (Default: 60)
    Global $iTotalPlaytime = 0
    Global $sPlayTimeColor = "#008000"
    Global $sSpielProcess = "Notepad.exe"
    Global $hSpielHandle = -1
    Global $sTitleSpiel = "Unbenannt"
    Global $iStartTimeOfGame = 1 * 1000	;in Millisekunden
    
    ; Gesamtspielzeit aus der Registrierung lesen
    $iTotalPlaytime = RegRead($regKey, $regValuePlayTime)
    If @error Then
        ConsoleWrite("Fehler beim Lesen der Registry")
        $iTotalPlaytime = 0
    EndIf
    
    ConsoleWrite("Gesamtspielzeit: " & _ConvertToTime($iTotalPlaytime) & @CRLF)
    
    Global $hWH = GUICreate("Spielzeit Aufzeichnung", 100, 200, -1, -1)
    Global $hButtonSpielen = GUICtrlCreateButton("Spielen", 10, 20, 80, 30)
    Global $hButtonAktSpielzeit = GUICtrlCreateButton("Spielzeit", 10, 60, 80, 30)
    Global $hButtonGesSpielzeit = GUICtrlCreateButton("GesSpielzeit",10,100,80,30)
    
    GUISetState()
    
    	While 1
    		If _SpielLaueft($sSpielProcess, $hSpielHandle, $sTitleSpiel, $iStartTime, $iStartTimeOfGame) Then	; Überwache die Spielzeit nur, wenn das Spiel läuft
    			_MonitorPlayingTime($iStartTime, $iTimeToWarning, $iWarningCounter)
    		Else
    			If $hSpielHandle <> -1 And Not ProcessExists($sSpielProcess) And $iStartTime <> 0 Then
    				_StopGame($iStartTime, $hSpielHandle, $iTotalPlaytime, $sPlayTimeColor)
    			EndIf
    		EndIf
    
    		Switch GUIGetMsg()
    			Case $GUI_EVENT_CLOSE
    				;$iTotalPlaytime = 0
    				RegWrite($regKey, $regValuePlayTime, $REG_STR_TYP, $iTotalPlaytime)
    				If @error Then ConsoleWrite("Fehler beim Schreiben in die Registry")
    				ProcessClose($sSpielProcess)
    				Exit
    			Case $hButtonSpielen
    				Run("notepad.exe")
    			Case $hButtonAktSpielzeit
    				ConsoleWrite("Aktuelle Spielzeit: " & _CurrentPlayTime($iStartTime) & @CRLF)
    
    			Case $hButtonGesSpielzeit
    				If _SpielLaueft($sSpielProcess, $hSpielHandle, $sTitleSpiel, $iStartTime, $iStartTimeOfGame) Then
    					$elapsedTime = _GetElapsedTime($iStartTime)
    					If $iTotalPlaytime >= $elapsedTime / 1000 Then
    						$iTotalPlaytime -= $elapsedTime / 1000 ; Ziehe vergangene Spielzeit von der Gesamtspielzeit ab
    					Else
    						$iTotalPlaytime = 0 ; Setze die Gesamtspielzeit auf 0, wenn sie unter 0 fällt
    					EndIf
    					RegWrite($regKey, $regValuePlayTime, $REG_STR_TYP, $iTotalPlaytime)
    					If @error Then ConsoleWrite("Fehler beim Schreiben in die Registry")
    				EndIf
    				ConsoleWrite("Aktuelle Spielzeit: " & _CurrentPlayTime($iStartTime) & @CRLF)
    				ConsoleWrite("Gesamtspielzeit: " & _ConvertToTime($iTotalPlaytime) & @CRLF)
    		EndSwitch
    	WEnd
    
    	Exit
    ;########################################################################
    
    	Func _SpielLaueft($_sProcessName, ByRef $_hSpielHandle, $_sSpielTitel, ByRef $_iStartTime, $_iStartTimeOfGame)
    		If ProcessExists($_sProcessName) Then
    			If $_iStartTime = 0 Then
    				WinActivate($_sSpielTitel)
    				WinWaitActive($_sSpielTitel, "", 30)
    				 Sleep($_iStartTimeOfGame) ; Warte 15 Sekunden, um die Startverzögerung zu berücksichtigen
    				$_iStartTime = _Date_Time_GetTickCount()
    				$_hSpielHandle = WinGetHandle($_sSpielTitel)
    				ConsoleWrite("Spiel startet..." & @CRLF)
    				ConsoleWrite("Spielzeit wird aufgezeichnet" & @CRLF)
    			EndIf
    			Return True
    		Else
    			Return False
    		EndIf
    	EndFunc
    
    	Func _MonitorPlayingTime($_iStartTime, $_iTimeToWarning, ByRef $_iWarningCounter)
    
    		Local $elapsedTime = _Date_Time_GetTickCount() - $_iStartTime
    		If $elapsedTime >= $_iTimeToWarning * 60000 * $_iWarningCounter Then
    			ConsoleWrite("Du spielst bereits seit " & ($_iTimeToWarning * $_iWarningCounter) & " Minuten." & @CRLF)
    			$_iWarningCounter += 1
    		EndIf
    	EndFunc
    
    	Func _StopGame(ByRef $_iStartTime, ByRef $_hSpielHandle, ByRef $_iTotalPlaytime, $_sPlayTimeColor)
    		If $_iStartTime = 0 Then Return
    
    		Local $elapsedTime = _Date_Time_GetTickCount() - $_iStartTime
    		; Füge die Spielzeit der aktuellen Sitzung zur Gesamtspielzeit hinzu
    		$_iTotalPlaytime += $elapsedTime ;/ 1000  ;Teile durch 1000, um Sekunden zu erhalten
    
    		ConsoleWrite("Aktuelle Spielzeit nach Beenden: " & _ConvertToTime($elapsedTime) & @CRLF)
    		ConsoleWrite("Neue Gesamtspielzeit nach Beenden: " & _ConvertToTime($_iTotalPlaytime) & @CRLF)
    
    		; Zurücksetzen der Startzeit und des Spielhandles
    		$_iStartTime = 0
    		$_hSpielHandle = -1
    	EndFunc
    
    	Func _CurrentPlayTime($_iStartTime)
    		If $_iStartTime <> 0 Then
    			Local $elapsedTime = _Date_Time_GetTickCount() - $_iStartTime
    			Local $sCurrentPlayTime = _ConvertToTime($elapsedTime)
    			Return $sCurrentPlayTime
    		EndIf
    	EndFunc
    
    	Func _ConvertToTime($milliseconds)
    		Local $years = Int($milliseconds / (86400000 * 365))
    		Local $days = Int(($milliseconds - ($years * 86400000 * 365)) / 86400000)
    		Local $hours = Int(Mod($milliseconds, 86400000) / 3600000)
    		Local $minutes = Int(Mod($milliseconds, 3600000) / 60000)
    		Local $seconds = Int(Mod($milliseconds, 60000) / 1000)
    		Local $timeString = ""
    
    		If $years > 0 Then
    			$timeString &= $years & " Jahre, "
    		EndIf
    
    		If $days > 0 Then
    			$timeString &= $days & " Tage, "
    		EndIf
    
    		If $hours > 0 Then
    			$timeString &= $hours & " Stunden, "
    		EndIf
    
    		If $minutes > 0 Then
    			$timeString &= $minutes & " Minuten, "
    		EndIf
    
    		If $seconds > 0 Then
    			$timeString &= $seconds & " Sekunden, "
    		EndIf
    
    		If StringLen($timeString) > 0 Then
    			$timeString = StringTrimRight($timeString, 2) ; Entferne das letzte Komma und Leerzeichen
    		Else
    			$timeString = "0 Sekunden"
    		EndIf
    
    		Return $timeString
    	EndFunc
    
    	Func _GetElapsedTime($_iStartTime)
    	  Local $iCurrentTime = _Date_Time_GetTickCount()
    	  Local $iTimeDiff = $iCurrentTime - $_iStartTime
    	  
    	  If $iTimeDiff < 0 Then
    		$iTimeDiff += 0xFFFFFFFF ; Berücksichtigt 32-Bit-Überlauf
    	  EndIf
    
    	  Return $iTimeDiff
    	EndFunc
    Alles anzeigen

    Vielen lieben Dank

    Gruß OhnePlan

  • von Datum bis Datum

    • OhnePlan
    • 14. Januar 2023 um 09:09

    Hallo zusammen,

    ich bastel an einem kleinen Projekt und möchte zb ab dem 15.1.2023 eine Ausgabe (msgbox etc), und das bis Datum X eingetroffen ist. Leider habe ich keinen Ansatzpunkt. Evtl könnt ihr mir helfen.

    Dankeschön

  • Timer Pause-Funktion

    • OhnePlan
    • 26. August 2022 um 21:34

    Funktioniert perfekt. Vielen lieben Dank

  • Timer Pause-Funktion

    • OhnePlan
    • 26. August 2022 um 14:56
    Zitat von Velted

    ich verstehe bisher auch nicht genau, wo Du hinwillst. Was soll z.B. $iCountAmount bewirken. Man kann es nur manuell verändern, auch während die Messung läuft. Welche Aussage haben dann die Spalten Counter und Counter diff?

    Das ganze soll für ein Spiel sein. Ich will wissen, wie lange wir zu einem Boss brauchen, wie lange dann der Bosskampf geht und wie oft wir gestorben sind. Eine Runde hat mehrere Bosse. Den „Todescounter“ zähle ich manuell hoch.

    Vielen lieben Dank. Allerdings ist bei der Gesamtzeit Berechnung ein Fehler, bei mehreren Werten zählt er über 60 Sek hinaus, was das Ergebnis verfälscht. Wie kann ich das ändern? So ganz steig ich noch nicht durch ^^

  • Timer Pause-Funktion

    • OhnePlan
    • 26. August 2022 um 13:39
    Zitat von Moombas

    Vielleicht bin ich blind aber wo packst du die Zeiten denn ins Array oder hakt es da schon?

    Ab Zeile 111 wird ins Array geschrieben. ich hab jetzt noch rumprobiert, bekomme es aber nicht hin.

    Zitat von BugFix

    Ich hatte vor vielen Jahren mal eine Stoppuhr erstellt mit Rundenmessung (Anzeige Runde, Zeitmessung läuft weiter). Vielleicht für dich brauchbar.

    Danke. Leider nein.

  • Timer Pause-Funktion

    • OhnePlan
    • 26. August 2022 um 11:16

    Hallo zusammen,

    ich habe den Timer etwas erweitert und versuche nun unterschiedliche Zeiten in einem Array zusammenzuzählen. Im endeffekt sollen alle Timerzeiten addiert werden sodass ich eine Gesamtzeit bekomme. Ich habe aktuell leider keinen Lösungsweg. Das ganze soll später einen eigenen Button sowie eine eigene GUI bekommen. Aber erstmal muss es funktionieren ^^. Über eure erneute Hilfe wäre ich euch sehr dankbar.

    C
    Global Const $sProgramVersion = "0.0.0.8"
    
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>
    #include <Array.au3>
    
    
    Global $hTimerGui, $iTimerLabel, $iTimer, $iCountLabel, $iState = 0 ; 0=start, 1=running, 2=paused
    Global $bEnd = False
    Global $arTimerButtons = [["Start", -1], ["Pause", -1], ["Exit", -1]]
    ;Global $arCounterButtons = [["Bild ▲", -1], ["Bild ▼", -1]]
    Global $arCounterButtons = [["Page ▲", -1], ["Page ▼", -1]]
    Global $iPausedTicks, $iTimerTicks
    Global $iCountAmount = 0
    
    Global $arTimerList[100][5] =    [    [00, "Timer", "Time", "Counter", "Counter diff"]]
    
    HotKeySet("{F10}",_timerToggleStarted)
    HotKeySet("{F11}",_timerTogglePaused)
    HotKeySet("{PGUP}", _counterPlus)         ;Bild hoch
    HotKeySet("{PGDN}", _counterMinus)        ;Bild runter
    
    
    _timerWin()
    ControlClick($hTimerGui,"",$arTimerButtons[0][1])
    
    While Not $bEnd
        Switch GUIGetMsg()
            Case $arTimerButtons[2][1]
                _timerExit()
            Case $arTimerButtons[0][1]
                _timerToggleStarted()
            Case $arTimerButtons[1][1]
                _timerTogglePaused()
    
            Case $arCounterButtons[0][1]
                _counterPlus()
            Case $arCounterButtons[1][1]
                _counterMinus()
        EndSwitch
        If $iState = 1 Then _timerUpdate()
    WEnd
    Exit
    
    Func _timerWin($sTimerName = "Timer [" & $sProgramVersion & "]", $iTimerBKColor = 0x63b96d)
        Local Const $iTimerGuiWidth = 195, $iTimerGuiHeight = 155, $iTimerGuiSpace = 5, $hParent = GUICreate("",10,10), $iBtnWidthCount = 45
    
        Local $iTimerLeft = (@DesktopWidth - $iTimerGuiWidth) -80
        Local $iTimerTop = 30
    
        $hTimerGui = GUICreate($sTimerName, $iTimerGuiWidth, $iTimerGuiHeight, $iTimerLeft, $iTimerTop, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW), Default, $hParent)
        GUISetBkColor($iTimerBKColor, $hTimerGui)
    
        GUICtrlCreateGroup("Timer (F10 Reset / F11 Pause)",1,5,187,70)
        GUICtrlSetFont(-1, 9, 500)
    
        GUICtrlCreateGroup("Counter",1,80,187,45)
        GUICtrlSetFont(-1, 9, 500)
    
        Local $iTimerBtnWidth = ($iTimerGuiWidth - (UBound($arTimerButtons)+1) * $iTimerGuiSpace) / UBound($arTimerButtons) ; (gui width - free space) / button amount
        For $i=0 To UBound($arTimerButtons)-1 Step 1
            $arTimerButtons[$i][1] = GUICtrlCreateButton($arTimerButtons[$i][0], ($i+1)*$iTimerGuiSpace + $i*$iTimerBtnWidth - 2, $iTimerGuiHeight-$iTimerGuiSpace-100, $iTimerBtnWidth, 20)
        Next
        GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
    
        $iTimerLabel = GUICtrlCreateLabel("00:00:00", $iTimerGuiSpace, 20, $iTimerGuiWidth-3*$iTimerGuiSpace, 25, BitOR($SS_NOTIFY, $SS_CENTER))
        GUICtrlSetFont($iTimerLabel, 20, 500)
    
        $iCountLabel = GUICtrlCreateLabel($iCountAmount, $iTimerGuiSpace+45, 93, $iTimerGuiWidth - $iTimerGuiSpace - ($iBtnWidthCount+53),25,BitOR($SS_NOTIFY, $SS_CENTER))
        GUICtrlSetFont($iCountLabel, 20, 500)
    
        $arCounterButtons[0][1] = GUICtrlCreateButton($arCounterButtons[0][0],$iTimerGuiSpace, 100, $iBtnWidthCount,20)
        $arCounterButtons[1][1] = GUICtrlCreateButton($arCounterButtons[1][0],$iTimerGuiWidth - $iTimerGuiSpace*2 -$iBtnWidthCount, 100,$iBtnWidthCount,20)
    
    
    
        GUISetState(@SW_SHOW, $hTimerGui)
        WinSetOnTop($hTimerGui, "", $WINDOWS_ONTOP)
    EndFunc
    
    Func _counterPlus()
        $iCountAmount = $iCountAmount +1
        GUICtrlSetData($iCountLabel, $iCountAmount)
    EndFunc
    
    Func _counterMinus()
        $iCountAmount = $iCountAmount -1
        If $iCountAmount < 0 Then $iCountAmount = 0
        GUICtrlSetData($iCountLabel, $iCountAmount)
    EndFunc
    
    Func _timerToggleStarted()
        Local Static $iTimerCount = 0
        If $iState = 0 Then
            $iState = 1
            GUICtrlSetData($arTimerButtons[0][1], "Reset")
            GUICtrlSetState($arTimerButtons[1][1], $GUI_ENABLE)
            $iTimerCount+=1
            $iTimer = TimerInit()
            $iTimerTicks = 0 ; <- 220824
            $iPausedTicks = 0 ; <- 220824
            ;AdlibRegister("_timerUpdate", 500)
        Else
           $iState = 0
            GUICtrlSetData($arTimerButtons[0][1], $arTimerButtons[0][0])
            GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
            GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
            If $iTimerCount>0 Then
                    ;$arTimerList[$iTimerCount][1] = "Timer[" & $iTimerCount&"]"
                    $arTimerList[$iTimerCount][1] = "0"& $iTimerCount
                    $arTimerList[$iTimerCount][2] = GUICtrlRead($iTimerLabel)
                    $arTimerList[$iTimerCount][3] = $iCountAmount
                    $arTimerList[$iTimerCount][4] = "+" & $arTimerList[$iTimerCount][3] - $arTimerList[$iTimerCount-1][3]
    
                    ;$arTimerList[$iTimerCount+1][0] = "Total:"
                    $arTimerList[$iTimerCount+1][2] = $arTimerList[1][2] + $arTimerList[2][2]
    
            EndIf
            _ArrayDisplay($arTimerList, "Timer List")
            GUICtrlSetData($iTimerLabel, "00:00:00")
            ControlClick($hTimerGui,"",$arTimerButtons[0][1])     ;Nur jetzt zum testen
            ;AdlibUnRegister("_timerUpdate")
        EndIf
    
    EndFunc
    
    
    Func _timerTogglePaused()
        If $iState = 1 Then
            $iState = 2
            GUICtrlSetData($arTimerButtons[1][1], "Resume")
            ;AdlibUnRegister("_timerUpdate")
        ElseIf $iState = 2 Then
            $iState = 1
            GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
            $iTimer = TimerInit() ; <- 220824
            $iPausedTicks += $iTimerTicks ; <- 220824
            ;AdlibRegister("_timerUpdate", 500)
        EndIf
    EndFunc
    
    Func _timerUpdate()
        Local Static $iHour, $iMins, $iSecs
        $iTimerTicks = TimerDiff($iTimer) ; <- 220824
        _TicksToTime($iPausedTicks + $iTimerTicks, $iHour, $iMins, $iSecs) ; <- 220824
        Local $sTime = StringFormat("%02i:%02i:%02i", $iHour, $iMins, $iSecs)
        If GUICtrlRead($iTimerLabel) <> $sTime Then GUICtrlSetData($iTimerLabel, $sTime)
    EndFunc   ;==>timerUpdate
    
    Func _timerExit()
        $iState = 0
        GUIDelete($hTimerGui)
       $bEnd = True
    EndFunc ;==> _timerExit
    Alles anzeigen
  • Timer Pause-Funktion

    • OhnePlan
    • 24. August 2022 um 10:45

    vielen Dank. Funktioniert.

  • Timer Pause-Funktion

    • OhnePlan
    • 23. August 2022 um 21:08

    Hallo,

    vielen Dank für deine Hilfe und Erklärung. Das hilft mir doch schon sehr . Mein grundlegendes Problem habe ich leider immer noch:

    Wenn ich zB nach 10 sec auf Pause klick, 10 sec warte und wieder auf Resume klick macht der Timer bei 20 sec weiter. Er sollte aber bei den 10 sec weiter machen.

  • Timer Pause-Funktion

    • OhnePlan
    • 23. August 2022 um 14:22

    Hallo zusammen,

    ich bin neu in der Welt des Programmierens und versuche mit AutoIT die Grundlagen zu verstehen.

    Aktuell arbeite ich an einer Stoppuhr die später von einem übergeordneten Programm verwendet werden soll. Ich scheitere allerdings an der Pause Funktion, da durch _TicksToTime einfach weiter gezählt wird.

    Hier mein Code:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>
    
    
    
            Global $Ende = False
    
            Global $hWH_Timer, $__chBTN_TimerStart, $__chBTN_TimerExit, $__chBTN_TimerPause, $__chLbl_Timer
            Global $g_hTimer, $g_iSecs, $g_iMins, $g_iHour, $g_sTime
    
            Global $TimerName = "Timer"
            Global $__TimerBKcolor = 0x40E0D0
    
            Global $__chBTN_TimerStartstr = "Start"
            Global $__chBTN_TimerExitstr = "Exit"
            Global $__chBTN_TimerPausestr = "Pause"
            Global $StartClick = 0
    
    
    _Timer_WIN()
    
    
    While Not $Ende
    
        Switch GUIGetMsg()
            Case $__chBTN_TimerExit
                    __TimerExit()
    
            Case $__chBTN_TimerStart
                    __TimerStart()
    
    
            Case $__chBTN_TimerPause
                    __TimerPause()
    
    
        EndSwitch
    
    
    WEnd
    
    
    Exit
    
        Func _Timer_WIN()
    
            Local $__hWH_Parent = GUICreate("",10,10)
    
            Local $__hWH_Timer_Width = 147
            Local $__hWH_Timer_Height = 80
            Local $__hWH_Timer_left = -1 ;(@DesktopWidth - $__hWH_Timer_Width) -80
            Local $__hWH_Timer_top = -1 ;30
    
            Local $__chBTN_Timer_left = 5
            Local $__chBTN_Timer_top = 30
            Local $__chBTN_Timer_Width = 40
            Local $__chBTN_Timer_Height = 20
            Local $__chBTN_Timer_Space = 5
    
            Local $__chLbl_Timer_left = 20
            Local $__chLbl_Timer_top = 0
            Local $__chLbl_Timer_Width = 110
            Local $__chLbl_Timer_Height = 25
    
    
            $hWH_Timer = GUICreate($TimerName, $__hWH_Timer_Width, $__hWH_Timer_Height, $__hWH_Timer_left, $__hWH_Timer_top, $WS_EX_TOPMOST + $WS_EX_TOOLWINDOW, -1, $__hWH_Parent)
            GUISetBkColor($__TimerBKcolor)
            $__chBTN_TimerStart = GUICtrlCreateButton($__chBTN_TimerStartstr, $__chBTN_Timer_left, $__chBTN_Timer_top, $__chBTN_Timer_Width, $__chBTN_Timer_Height)
            $__chBTN_TimerPause = GUICtrlCreateButton($__chBTN_TimerPausestr, $__chBTN_Timer_left + $__chBTN_Timer_Space + $__chBTN_Timer_Width, $__chBTN_Timer_top, $__chBTN_Timer_Width, $__chBTN_Timer_Height)
            $__chBTN_TimerExit = GUICtrlCreateButton($__chBTN_TimerExitstr, $__chBTN_Timer_left + 90, $__chBTN_Timer_top, $__chBTN_Timer_Width, $__chBTN_Timer_Height)
    
            $__chLbl_Timer = GUICtrlCreateLabel("00:00:00", $__chLbl_Timer_left, $__chLbl_Timer_top, $__chLbl_Timer_Width, $__chLbl_Timer_Height)
            GUICtrlSetFont(-1,20,500)
    
            GUICtrlSetState($__chBTN_TimerPause, $GUI_DISABLE)
    
            GUISetState()
            WinSetOnTop($hWH_Timer, "", $WINDOWS_ONTOP)
            Return True
        EndFunc    ;==> _Timer_WIN
    
    
        Func __TimerStart()
            If GUICtrlRead($__chBTN_TimerStart) = $__chBTN_TimerStartstr Then
                GUICtrlSetData($__chBTN_TimerStart, "Stop")
                $StartClick += 1
                $g_hTimer = TimerInit()
                AdlibRegister("_Timer")
                GUICtrlSetState($__chBTN_TimerPause, $GUI_ENABLE)
            Else
                GUICtrlSetData($__chBTN_TimerStart, $__chBTN_TimerStartstr)
                GUICtrlSetData($__chBTN_TimerPause, $__chBTN_TimerPausestr)
                    If GUICtrlRead($__chLbl_Timer) <> "00:00:00" Then ConsoleWrite("Timer[" & $StartClick&"]: " & $g_sTime & @CRLF& @CRLF)
                GUICtrlSetData($__chLbl_Timer, "00:00:00")
                AdlibUnRegister("_Timer")
                GUICtrlSetState($__chBTN_TimerPause, $GUI_DISABLE)
            EndIf
    
            Return True
        EndFunc    ;==> __TimerStart
    
    
        Func __TimerPause()
            If GUICtrlRead($__chBTN_TimerPause) = $__chBTN_TimerPausestr Then
                GUICtrlSetData($__chBTN_TimerPause, "Weiter")
                AdlibUnRegister("_Timer")
            Else
                GUICtrlSetData($__chBTN_TimerPause, $__chBTN_TimerPausestr)
                AdlibRegister("_Timer")
    
            EndIf
    
            Return True
        EndFunc    ;==> __TimerPause
    
    
        Func __TimerExit()
            AdlibUnRegister("_Timer")
            GUIDelete($hWH_Timer)
            $Ende = True
    
            Return True
        EndFunc    ;==> __TimerExit
    
        Func _Timer()
            _TicksToTime(Int(TimerDiff($g_hTimer)), $g_iHour, $g_iMins, $g_iSecs)
            Local $sTime = $g_sTime
            $g_sTime = StringFormat("%02i:%02i:%02i", $g_iHour, $g_iMins, $g_iSecs)
            If $sTime <> $g_sTime Then ControlSetText($hWH_Timer, "", "Static1", $g_sTime)
            Return
        EndFunc   ;==>Timer
    Alles anzeigen

    Über Hilfe und Anregungen würde ich mich sehr freuen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™