Jump to content

Leaderboard


Popular Content

Showing most liked content on 11/30/2019 in all areas

  1. 1 point
    @alexandre Muito bom esse exemplo Fiz um contador (criando do meu jeito porém seguindo a lógica do video) e adicionei a opção de reiniciar o contador. Mas quando o contador é reiniciado o tempo começa com 2 segundos a menos #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.5 Author: Rodrigo Chaves Script Function: Timer 11/2019 #ce ---------------------------------------------------------------------------- #NoTrayIcon #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPISys.au3> #include <Misc.au3> ;Forca a execucao de apenas uma instancia If _Singleton(@ScriptName, 1) = 0 Then Exit ;/Variaveis controle / tempo Dim $sCreditos = 1 Dim $sHoras, $sMinutos, $sSegundos = 0 ;// ;/Paleta de cores Dim $iColor_Text = 0xFFFFFF ;White Dim $iColor_Background = 0x252525 ;Dark ;// ;Controle de exibicao da GUI e controle Dim $iShowGUI = 'Bottom' ;Top / Bottom Dim $sShow, $bContinue = True ;Dimensao da GUI Dim $iW = 200, $iH = 70 ;GUI Dim Const $hWnd_Main = GUICreate("Timer", $iW, $iH, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOPMOST) ;Define a cor da GUI GUISetBkColor($iColor_Background) ;Coleta as dimensoes e posicao da gui $aGetPos = WinGetPos($hWnd_Main) ;Label Timer $sLabel_Timer = GUICtrlCreateLabel("--:--:--", 0, 0, $aGetPos[2] - 1, 70, BitOR($SS_CENTER, $SS_CENTERIMAGE)) GUICtrlSetFont(-1, 34, 400, 0, "Segoe UI") GUICtrlSetColor(-1, $iColor_Text) ;Label mensagem $sLabel_Aguarde = GUICtrlCreateLabel(" Aguarde. . .", 0, 55, $aGetPos[2] - 1, 17, $SS_CENTERIMAGE) GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI") GUICtrlSetColor(-1, $iColor_Text) ;Configura a visualizacao da GUI If $iShowGUI = 'Bottom' Then ;Move a GUI para perto do tray moveToTaskbar($hWnd_Main) ElseIf $iShowGUI = 'Top' Then GUICtrlSetPos($hWnd_Main, 0, 0, $iW, $iH) EndIf ;Aplica efeito de entrada pela direita _WinAPI_AnimateWindow($hWnd_Main, 0x00040002, 350) GUISetState(@SW_SHOW) ;Configura tecla de atalho HotKeySet('{ESC}', '_Quit') ;Registra a funcao _Clock AdlibRegister('_Clock', 1000) Do ;Calculo do tempo _CoreClock() $iQuestion = MsgBox(262144+32+4, 'O tempo acabou', 'Deseja reiniciar o contador?', 60) If $iQuestion = 6 Then $idInput_Time = InputBox('Timer', 'Insira a quantidade de créditos', 1, '', -1, -1, Default, Default, 60, $hWnd_Main) ;Verifica se algo foi informado If $idInput_Time <> '' Then ;Verifica se eh um caracter numerico If StringIsDigit($idInput_Time) Then $sCreditos = $idInput_Time _CoreClock() $bContinue = True Else MsgBox(262144+64, 'Timer', 'Informações inválidas', 10) $bContinue = False EndIf EndIf Else $bContinue = False EndIf Until $bContinue = False ;Aguarda para zerar o relogio Sleep(1000) ;Cancela o registro da funcao _Clock AdlibUnRegister('_Clock') ;Exibe mensagem GUICtrlSetData($sLabel_Aguarde, ' Concluido Pressione Esc para fechar') While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _Quit() EndSwitch WEnd ;Contador do tempo Func _Clock() $sSegundos -= 1 GUICtrlSetData($sLabel_Timer, $sShow) If GUICtrlRead($sLabel_Aguarde, 1) <> '' Then GUICtrlSetData($sLabel_Aguarde, '') EndFunc ;Calculo do tempo Func _CoreClock() Do $sSegundos += $sCreditos * 60 $sMinutos = Mod($sSegundos / 60, 60) $sHoras = $sSegundos / 3600 $sCreditos = 0 $sShow = StringFormat('%02i:%02i:%02i', $sHoras, $sMinutos, Mod($sSegundos, 60)) Until $sShow = '00:00:00' EndFunc ;Funcao de saida Func _Quit() If WinActive($hWnd_Main) Then _WinAPI_AnimateWindow($hWnd_Main, 0x00050001, 300) Exit EndIf EndFunc ;Exibe GUI perto do tray Func moveToTaskbar($hwndByRef) $___aTaskbar = WinGetPos("[CLASS:Shell_TrayWnd]", "") $___aWin = WinGetPos($hwndByRef) WinMove($hwndByRef, "", @DesktopWidth - $___aWin[2] - 2, @DesktopHeight - $___aWin[3] - $___aTaskbar[3] - 2) EndFunc
×