Jump to content
Sign in to follow this  
Brenner

Dispert Now 0.1

Recommended Posts

Muitos pensaram que eu tinha vazado, muitos pensaram que eu tinha desistido, mas então ontem venho uma ideia na minha cabeça, pensando nisso eu criei o ...

10e3q1e.png

"Aplausos..."

 

É um despertador que acorda com a sua musiquinha preferida, só escolher e pronto *-* ' , espero que seja útil pra alguem aqui vey, porque ta punk a movimentação no fórum, gogo mitos acordar mano =/ ...

 

Source :

#NoTrayIcon ; Ocultar ícone do relógio
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>  ; include importante


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Despert Now", 441, 108, 242, 160)
GUISetBkColor(0x008000)
$Label1 = GUICtrlCreateLabel("Tempo:", 24, 24, 63, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Hora = GUICtrlCreateInput("Hora", 88, 24, 65, 21)
$Label2 = GUICtrlCreateLabel(":", 160, 24, 9, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Minutos = GUICtrlCreateInput("Minutos", 176, 24, 73, 21)
$Button1 = GUICtrlCreateButton("Iniciar", 192, 48, 59, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Selecionar Música", 304, 56, 97, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Developer", 304, 24, 97, 25, $WS_GROUP)
$Group1 = GUICtrlCreateGroup("Configurações", 16, 8, 409, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       Exit

               Case $Button2
               $opendialog = FileOpenDialog ( "Open Music...", @ScriptDir, "Music (*.*)") ; abre o arquivo

            Case $Button1
                    MsgBox(0,"Atenção","O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
                    $horas = GUICtrlRead($Hora)
                       $minutos = GUICtrlRead($Minutos)
                       Do
                    If @HOUR = $horas and @MIN = $minutos Then _SoundPlay($opendialog)
                    Until @HOUR = $horas and @MIN = $minutos
                    _SoundPlay($opendialog)
                    MsgBox(0,"Time Over!","Seu tempo acabou ! :/")

                Case $Button3
                    MsgBox(0,"Créditos","Desenvolvido por : Allysson Brenner")

EndSwitch
WEnd


; Programa desenvolvido por Allysson Brenner | Disponibilizado para estudos apenas para o fórum oficial de AutoIt no Brasil !
; | www.autoitbrasil.com | Se você mexe com a linguagem entre para a nossa família :)

 

Pastebin : http://pastebin.com/2jtxaZDS

Download : http://www.multiupload.com/EO73M7I6J9 ( Por favor baixa, da sugestões críticas e tals mano =/ )

Tópicos de aprendizado : Sleeper | Player

Share this post


Link to post
Share on other sites

Valeu galera, próxima versão vai ser muito massa e com umas funções bem dahora, vou abusar de vocês no suporte ahuahau , eu to mt afim de levar esse programa pra frente, da pra encaixar umas funções fáceis de fazer e úteis , vlw ae pelos elogios xD '

Share this post


Link to post
Share on other sites

Já tentei aprender C++, e te dou a palavra que AUTO IT é bem mais fácil, boa sorte na caminhada xD

Share this post


Link to post
Share on other sites

@Brenner,

 

Teu erro está aqui:

Do
If @HOUR = $horas And @MIN = $Minutos Then _SoundPlay($opendialog)
Until @HOUR = $horas And @MIN = $Minutos

 

Vou alterar algumas linhas e posto o resultado...

 

João Carlos.

Share this post


Link to post
Share on other sites

@Brenner

 

Aqui estão as mudanças que realizei:

#NoTrayIcon ; Ocultar ícone do relógio
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
;#include <Sound.au3>  ; include importante

Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.

Local $iHour = 0, $iMinute = 0, $fFlag = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Despert Now", 441, 108, 242, 160)
GUISetBkColor(0x008000)
$Label1 = GUICtrlCreateLabel("Tempo:", 24, 24, 63, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Hora = GUICtrlCreateInput("Hora", 88, 24, 65, 21)
$Label2 = GUICtrlCreateLabel(":", 160, 24, 9, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Minutos = GUICtrlCreateInput("Minutos", 176, 24, 73, 21)
$Button1 = GUICtrlCreateButton("Iniciar", 192, 48, 59, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE) ; Só faz sentido estar funcional somente se a música já foi escolhida...
$Button2 = GUICtrlCreateButton("Selecionar Música", 304, 56, 97, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Developer", 304, 24, 97, 25, $WS_GROUP)
$Group1 = GUICtrlCreateGroup("Configurações", 16, 8, 409, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

; Show the tray icon
TraySetState()

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    Case $GUI_EVENT_MINIMIZE ; Send the program to system tray (not appear in the task bar)...
        _SendToTray($Form1)

    Case $Button2
        $opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
        If Not @error Or $opendialog <> "" Then
            GUICtrlSetState($Button1, $GUI_ENABLE)
            ContinueLoop
        EndIf
        GUICtrlSetState($Button1, $GUI_DISABLE)

    Case $Button1
        MsgBox(0, "Atenção", "O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
        $iHour = GUICtrlRead($Hora)
        $iMinute = GUICtrlRead($Minutos)
        GUICtrlSetState($Button1, $GUI_DISABLE)

    Case $Button3
        MsgBox(0, "Créditos", "Desenvolvido por : Allysson Brenner")

EndSwitch
Select
    Case @HOUR = $iHour And Int(@MIN) = Int($iMinute) And $fFlag = 0
        $fFlag = 1
        GUICtrlSetState($Button1, $GUI_DISABLE)
        SoundPlay($opendialog)
    Case Int(@MIN) <> Int($iMinute) And $fFlag = 1
        $fFlag = 0
        $iHour = 0
        $iMinute = 0
        GUICtrlSetState($Button1, $GUI_ENABLE)
        SoundPlay("")
        MsgBox(0, "Time Over!", "Seu tempo acabou ! :/")
EndSelect

; Reads tray options...
Switch TrayGetMsg()
    Case $TRAY_EVENT_PRIMARYDOWN
        _SendToTray($Form1)
EndSwitch
WEnd


; Programa desenvolvido por Allysson Brenner | Disponibilizado para estudos apenas para o fórum oficial de AutoIt no Brasil !
; | www.autoitbrasil.com | Se você mexe com a linguagem entre para a nossa família :)

; Add by jscript

; #FUNCTION# ====================================================================================================================
; Name ..........: _SendToTray
; Description ...:
; Syntax ........: _SendToTray( [ $hWnd ] )
; Parameters ....: $hWnd                - [Required] A handle value.
; Return values .: None
; Author(s) .....: João Carlos (Jscript FROM Brazil)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _SendToTray($hWnd = 0)
If $hWnd = 0 Then Return 0

If BitAND(WinGetState($hWnd, ""), 2) Then Return GUISetState(@SW_HIDE, $hWnd)

Return GUISetState(@SW_SHOW, $hWnd)
EndFunc   ;==>_SendToTray

 

 

Obs.: Fiz nas pressas... Já estou em casa e tenho que dividir o tempo entre: Mulher e dois filhos maravilhosos :wacko: ...

 

João Carlos.

Share this post


Link to post
Share on other sites

E porque o meu não fecha velho ? Alguém posta o tutorial de só disponibilizar o botão INICIAR quando chamar uma função por favor, vlw xD

Share this post


Link to post
Share on other sites

E porque o meu não fecha velho ?...

Observa essa sequência:

Do
If @HOUR = $horas And @MIN = $minutos Then _SoundPlay($opendialog)
Until @HOUR = $horas And @MIN = $minutos

Desse Do até o Until so tem uma única tarefa à ser executada: If, que por consequência o SoundPlay!

Isso é feito sucessivamente não deixando espaço (CPU) para executar mais nada!

Para agravar ainda mais a situação, a leitura dos botões do sistema [_][-][X] está completamente fora desse loop!

 

 

...Alguém posta o tutorial de só disponibilizar o botão INICIAR quando chamar uma função por favor, vlw xD

Veja:

$Button1 = GUICtrlCreateButton("Iniciar", 192, 48, 59, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE) ; Só faz sentido estar funcional somente se a música já foi escolhida...

e

$opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
If Not @error Or $opendialog <> "" Then
GUICtrlSetState($Button1, $GUI_ENABLE)
ContinueLoop
EndIf
GUICtrlSetState($Button1, $GUI_DISABLE)

Já diz tudo o que você precisa...

 

João Carlosl.

Share this post


Link to post
Share on other sites

Caraca mano, sua source ficou gigante, garanto que funciona melhor que a minha, pena que não entendo quase nada que vc modificou ai =/

Share this post


Link to post
Share on other sites

Caraca mano, sua source ficou gigante, garanto que funciona melhor que a minha, pena que não entendo quase nada que vc modificou ai =/

Pelo comentário, parece que você ainda não à viu funcionando...

 

Explicações:

 

Se minimizarmos o programa original, ele ainda fica na barra de tarefas, com essas adições, ao minimizar, o programa vai para a bandeja do sistema...

Case $GUI_EVENT_MINIMIZE ; Send the program to system tray (not appear in the task bar)...
_SendToTray($Form1)

Função:

Func _SendToTray($hWnd = 0)
If $hWnd = 0 Then Return 0

If BitAND(WinGetState($hWnd, ""), 2) Then Return GUISetState(@SW_HIDE, $hWnd)

Return GUISetState(@SW_SHOW, $hWnd)
EndFunc   ;==>_SendToTray

 

O botão "Iniciar" somente ficará ativo se e somente se escolhermos uma música primeiramente, no original o botão já está funcional mesmo sem uma música selecionada...

Case $Button2
$opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
If Not @error Or $opendialog <> "" Then
    GUICtrlSetState($Button1, $GUI_ENABLE)
    ContinueLoop
EndIf
GUICtrlSetState($Button1, $GUI_DISABLE)

 

Neste trecho você estava "matando" os identificadores dos "inputs"...

Case $Button1
        MsgBox(0, "Atenção", "O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
        $iHour = GUICtrlRead($Hora)
        $iMinute = GUICtrlRead($Minutos)
        GUICtrlSetState($Button1, $GUI_DISABLE)

Por isso adicionei:

Local $iHour = 0, $iMinute = 0

 

Nesta parte, eu substitui o loop que não dava suporte aos botãos da janela, entre eles o [X], por isso você não consegue fechar o programa original...

Select
Case @HOUR = $iHour And Int(@MIN) = Int($iMinute) And $fFlag = 0
    $fFlag = 1
    GUICtrlSetState($Button1, $GUI_DISABLE)
    SoundPlay($opendialog)
Case Int(@MIN) <> Int($iMinute) And $fFlag = 1
    $fFlag = 0
    $iHour = 0
    $iMinute = 0
    GUICtrlSetState($Button1, $GUI_ENABLE)
    SoundPlay("")
    MsgBox(0, "Time Over!", "Seu tempo acabou ! :/")
EndSelect

 

Essa parte "lê" os cliques dados no ícone do programa que fica no systray (bandeja do sistema)...

; Reads tray options...
Switch TrayGetMsg()
Case $TRAY_EVENT_PRIMARYDOWN
    _SendToTray($Form1)
EndSwitch

 

Se tiveres mais dúvidas é só postar...

 

João Carlos.

Share this post


Link to post
Share on other sites

Mano eu to fazendo a versão do time manager 0.2, o código pra fechar fica em cima e tals,mas ainda não fecha mano , eu vejo que é quando clica no botão INICIAR, que não executa nenhuma função apenas a da msg box, tipow ... Estou fazendo junto com o despertador a função de desligar o pc automaticamente, ai eu fazendo meus testes e percebi que quando a pessoa deixa em branco os 2 input's, e clica em iniciar ai é que ele não fecha, é como se ele não executasse nenhuma função =/ . Eu sei que ninguém iria deixar em branco, mas programação é assim, tem que haver o mínimo de falhas possíveis no programa, se for necessário a source é só falar =/

Share this post


Link to post
Share on other sites

Você entendeu o que eu postei na message 14?

 

Se poderes publicar essa nova versão, com certeza ficará melhor de te ajudar...

 

Vejo que estás com problemas em Loops dentro de Loops!!!

Observe que se segundo Loop dentro de outro fica ativo, o primeiro não irá executar nada! AutoIt não é "Multi Tarefa"!

 

João Carlos.

Share this post


Link to post
Share on other sites

Ok, malz ta aperriando mt, mas é que sou novo nessa linguagem e é a primeira que to estudando , tenho apenas 15 aninhos ^^ , segue a source :

 

 

; Início das Includes
#NoTrayIcon ; Tira o ícone do relógio
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3> ; Include necessária para a música .
; Fim das Includes

Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.

Local $iHour = 0, $iMinute = 0, $fFlag = 0

#Region ### START Koda GUI section ### Form= ; Início do Design do programa "Koda"
$Form1 = GUICreate("Time Manager 0.2", 518, 282, 222, 120) ; Form
$MenuItem1 = GUICtrlCreateMenu("&Ajuda") ; Menu Ajuda
$Help_Despertador = GUICtrlCreateMenuItem("Despertador", $MenuItem1) ; SubMenu Ajuda, Despertador
$MenuItem3 = GUICtrlCreateMenuItem("Auto Shutting", $MenuItem1) ; SubMenu Ajuda, Auto Shutting
$MenuItem4 = GUICtrlCreateMenu("&Créditos") ; Menu Créditos
$Developer = GUICtrlCreateMenuItem("Developer", $MenuItem4) ; SubMenu Créditos, Developer
$Forum = GUICtrlCreateMenuItem("AutoIt Brasil", $MenuItem4) ; SubMenu Créditos, Fórum
$Group1 = GUICtrlCreateGroup("Despertador", 8, 16, 489, 97) ; Grupo Despertador
$Label1 = GUICtrlCreateLabel("Desejo acordar ás", 16, 40, 119, 20) ; Desejo acordar ás
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Horas_Acordar = GUICtrlCreateInput("", 136, 40, 49, 21) ; Input 1 (Horas)
$Label2 = GUICtrlCreateLabel("Horas, e aos", 192, 40, 84, 20) ; Horas, e aos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Minuto_Acordar = GUICtrlCreateInput("", 280, 40, 49, 21) ; Input 2 (Minutos)
$Label3 = GUICtrlCreateLabel("Minutos .", 336, 40, 56, 20) ; Minutos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Button1 = GUICtrlCreateButton("Iniciar", 416, 80, 65, 25, $WS_GROUP) ; Botão Iniciar
GUICtrlSetState(-1, $GUI_DISABLE) ; Só faz sentido estar funcional somente se a música já foi escolhida...
$Selecionar = GUICtrlCreateButton("Selecionar Música", 312, 80, 97, 25, $WS_GROUP) ; Botão Selecionar Música
GUICtrlCreateGroup("", -99, -99, 1, 1) ; Criação do grupo
$Group2 = GUICtrlCreateGroup("Auto Shutting Down", 8, 144, 489, 97) ; Grupo Auto Shutting Down
$Label4 = GUICtrlCreateLabel("Desligar PC ás", 14, 172, 97, 20) ; Desligar PC ás
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Hora_Desligar = GUICtrlCreateInput("", 134, 172, 49, 21) ; Input3 (Horas de desligar)
$Label5 = GUICtrlCreateLabel("Horas, e aos", 190, 172, 84, 20) ; Horas, e aos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Minuto_Desligar = GUICtrlCreateInput("", 286, 172, 49, 21) ; Input4 (Minutos de desligar)
$Label6 = GUICtrlCreateLabel("Minutos .", 342, 172, 56, 20) ; Minutos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da font
$Button3 = GUICtrlCreateButton("Ativar", 416, 208, 65, 25, $WS_GROUP) ; Botão Iniciar
GUICtrlCreateGroup("", -99, -99, 1, 1) ; EndGruop
GUISetState(@SW_SHOW) ; Fim
Dim $Form1_AccelTable[1][2] = [["^{F5}", $MenuItem3]]
GUISetAccelerators($Form1_AccelTable)
#EndRegion ### END Koda GUI section ### ; Fim do design do programa "Koda"

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
        Case $GUI_EVENT_CLOSE
           Exit

    Case $Developer ; Caso clique em Developer
        MsgBox(0,"Créditos","Desenvolvido por : Allysson Brenner") ; Aparece a mensagem

    Case $Forum ; Caso clique em Forum
        MsgBox(0,"AutoIt Brasil!","www.autoitbrasil.com") ; Aparece a mensagem

               Case $Selecionar
                       $opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
                       If Not @error Or $opendialog <> "" Then
                    GUICtrlSetState($Button1, $GUI_ENABLE)
                       ContinueLoop
                       EndIf
                       GUICtrlSetState($Button1, $GUI_DISABLE)

               Case $Button1
                       MsgBox(0, "Atenção", "O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
                       $iHour = GUICtrlRead($Horas_Acordar)
                       $iMinute = GUICtrlRead($Minuto_Acordar)
                       GUICtrlSetState($Button1, $GUI_DISABLE)

    Case $Button3 ; Caso clique em Button3
        MsgBox(0,"Atenção","O seu SHUTTING DOWN foi ativado, para cancelar feche o programa.")
        $horas = GUICtrlRead($Hora_Desligar) ; Defini $horas
        $minutos = GUICtrlRead($Minuto_Desligar) ; Defini $minutos
        GUICtrlSetState($Button1, $GUI_DISABLE)
        Do
        If @HOUR = $horas and @MIN = $minutos Then Shutdown(5) ; Se a hora do computador for igual a hora definida, e o minuto também então desliga o pc
        Until @HOUR = $horas and @MIN = $minutos
        Shutdown(5) ; Desliga o PC

    Case $Help_Despertador ; Caso clique em $Help_Despertador = Despertador
        MsgBox(0,"Help","Atenção, assim que for clicado em INICIAR, o cronômtro já estará rodando, ao chegar na hora marcada irá tocar a Música escolhida") ; Mensagem de aviso

    Case $MenuItem3 ; Caso clique em $MenuItem3 = Auto Shutting
        MsgBox(0,"Help","Ao escolher a hora desejada, ao chegar nela o seu computador irá desligar automaticamente, todas as funções são de acordo com o horário do seu computador") ; Mensagem de aviso

EndSwitch
            Select
               Case @HOUR = $iHour And Int(@MIN) = Int($iMinute) And $fFlag = 0
                       $fFlag = 1
                       GUICtrlSetState($Button1, $GUI_DISABLE)
                       SoundPlay($opendialog)
               Case Int(@MIN) <> Int($iMinute) And $fFlag = 1
                       $fFlag = 0
                       $iHour = 0
                       $iMinute = 0
                       GUICtrlSetState($Button1, $GUI_ENABLE)
                       SoundPlay("")
                       MsgBox(0, "Time Over!", "Seu tempo acabou ! :/")
                EndSelect
WEnd ; Fim do While

; Programa desenvolvido por Allysson Brenner ;
; Distrubuição R.I.P permitida apenas para o fórum www.autoitbrasil.com , se você mexe na linguagem entre para a nossa família ;

 

 

Não testei a função de desligar ainda o PC por estar usando, mas se puder configurar que nem eu configurei no despertador, como vc havia falado eu ficaria grato =) .

Share this post


Link to post
Share on other sites

(...)quando a pessoa deixa em branco os 2 input's, e clica em iniciar ai é que ele não fecha(...)

Podes adicionar a seguinte modificação para garantir que não fiquem em branco:

Case $Button1
$iHour = GUICtrlRead($Hora)
$iMinute = GUICtrlRead($Minutos)

If Not IsNumber($iHour) Or Not IsNumber($iMinute) Then
    MsgBox(0, "Atenção", "Você deve definir a hora e o minuto para iniciar o cronômetro!")
    GUICtrlSetState($Hora, $GUI_FOCUS)
    ContinueLoop
EndIf
MsgBox(0, "Atenção", "O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
GUICtrlSetState($Button1, $GUI_DISABLE)

 

João Carlos.

Share this post


Link to post
Share on other sites

Leia primeiramente a mensagem 18!

 

Você cometeu o mesmo erro nessa parte:

Case $Button3 ; Caso clique em Button3
        MsgBox(0, "Atenção", "O seu SHUTTING DOWN foi ativado, para cancelar feche o programa.")
        $horas = GUICtrlRead($Hora_Desligar) ; Defini $horas
        $minutos = GUICtrlRead($Minuto_Desligar) ; Defini $minutos
        GUICtrlSetState($Button1, $GUI_DISABLE)
        Do
            If @HOUR = $horas And @MIN = $minutos Then Shutdown(5) ; Se a hora do computador for igual a hora definida, e o minuto também então desliga o pc
        Until @HOUR = $horas And @MIN = $minutos
        Shutdown(5) ; Desliga o PC

Porque você insiste em usar um Loop dentro de outro? Para resolver, é só seguir as mudanças anteriormente para substituir esse par Do-Until...

 

João Carlos.

Share this post


Link to post
Share on other sites

@Brenner

 

Sugiro que você estude essa mudança que fiz e compare com o código original para ver as diferenças:

; Início das Includes
#NoTrayIcon ; Tira o ícone do relógio
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3> ; Include necessária para a música .
; Fim das Includes

Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.

Local $iHour = 0, $iMinute = 0, $fFlag1 = 0, $fFlag2 = 0, $fFlag3 = 0
Local $iHoras = 0, $iMinutos = 0

#Region ### START Koda GUI section ### Form= ; Início do Design do programa "Koda"
$Form1 = GUICreate("Time Manager 0.2", 518, 282, 222, 120) ; Form
$MenuItem1 = GUICtrlCreateMenu("&Ajuda") ; Menu Ajuda
$Help_Despertador = GUICtrlCreateMenuItem("Despertador", $MenuItem1) ; SubMenu Ajuda, Despertador
$MenuItem3 = GUICtrlCreateMenuItem("Auto Shutting", $MenuItem1) ; SubMenu Ajuda, Auto Shutting
$MenuItem4 = GUICtrlCreateMenu("&Créditos") ; Menu Créditos
$Developer = GUICtrlCreateMenuItem("Developer", $MenuItem4) ; SubMenu Créditos, Developer
$Forum = GUICtrlCreateMenuItem("AutoIt Brasil", $MenuItem4) ; SubMenu Créditos, Fórum
$Group1 = GUICtrlCreateGroup("Despertador", 8, 16, 489, 97) ; Grupo Despertador
$Label1 = GUICtrlCreateLabel("Desejo acordar ás", 16, 40, 119, 20) ; Desejo acordar ás
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Horas_Acordar = GUICtrlCreateInput("", 136, 40, 49, 21) ; Input 1 (Horas)
$Label2 = GUICtrlCreateLabel("Horas, e aos", 192, 40, 84, 20) ; Horas, e aos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Minuto_Acordar = GUICtrlCreateInput("", 280, 40, 49, 21) ; Input 2 (Minutos)
$Label3 = GUICtrlCreateLabel("Minutos .", 336, 40, 56, 20) ; Minutos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Button1 = GUICtrlCreateButton("Iniciar", 416, 80, 65, 25, $WS_GROUP) ; Botão Iniciar
GUICtrlSetState(-1, $GUI_DISABLE) ; Só faz sentido estar funcional somente se a música já foi escolhida...
$Selecionar = GUICtrlCreateButton("Selecionar Música", 312, 80, 97, 25, $WS_GROUP) ; Botão Selecionar Música
GUICtrlCreateGroup("", -99, -99, 1, 1) ; Criação do grupo
$Group2 = GUICtrlCreateGroup("Auto Shutting Down", 8, 144, 489, 97) ; Grupo Auto Shutting Down
$Label4 = GUICtrlCreateLabel("Desligar PC ás", 14, 172, 97, 20) ; Desligar PC ás
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Hora_Desligar = GUICtrlCreateInput("", 134, 172, 49, 21) ; Input3 (Horas de desligar)
$Label5 = GUICtrlCreateLabel("Horas, e aos", 190, 172, 84, 20) ; Horas, e aos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da fonte
$Minuto_Desligar = GUICtrlCreateInput("", 286, 172, 49, 21) ; Input4 (Minutos de desligar)
$Label6 = GUICtrlCreateLabel("Minutos .", 342, 172, 56, 20) ; Minutos
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ; Configuração da font
$Button3 = GUICtrlCreateButton("Ativar", 416, 208, 65, 25, $WS_GROUP) ; Botão Iniciar
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1) ; EndGruop
GUISetState(@SW_SHOW) ; Fim
Dim $Form1_AccelTable[1][2] = [["^{F5}", $MenuItem3]]
GUISetAccelerators($Form1_AccelTable)
#EndRegion ### END Koda GUI section ### ; Fim do design do programa "Koda"

While 1
$iHoras = GUICtrlRead($Minuto_Desligar)
If $iHoras > 0 And $fFlag3 = 0 Then
    GUICtrlSetState($Button3, $GUI_ENABLE)
    $fFlag3 = 1
ElseIf $iHoras = 0 And $fFlag3 = 1 Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    $fFlag3 = 0
EndIf

$nMsg = GUIGetMsg()
Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit

    Case $Developer ; Caso clique em Developer
        MsgBox(0, "Créditos", "Desenvolvido por : Allysson Brenner") ; Aparece a mensagem

    Case $Forum ; Caso clique em Forum
        MsgBox(0, "AutoIt Brasil!", "www.autoitbrasil.com") ; Aparece a mensagem

    Case $Selecionar
        $opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
        If Not @error Or $opendialog <> "" Then
            GUICtrlSetState($Button1, $GUI_ENABLE)
            ContinueLoop
        EndIf
        GUICtrlSetState($Button1, $GUI_DISABLE)

    Case $Button1
        $iHour = GUICtrlRead($Horas_Acordar)
        $iMinute = GUICtrlRead($Minuto_Acordar)

        If Not IsNumber($iHour) Or Not IsNumber($iMinute) Then
            MsgBox(0, "Atenção", "Você deve definir a hora e o minuto para iniciar o cronômetro!")
            GUICtrlSetState($Horas_Acordar, $GUI_FOCUS)
            ContinueLoop
        EndIf
        MsgBox(0, "Atenção", "O cronômetro já está rodando, ele irá funcionar de acordo com a hora da sua máquina!")
        GUICtrlSetState($Button1, $GUI_DISABLE)

    Case $Button3 ; Caso clique em Button3
        $iHoras = GUICtrlRead($Hora_Desligar) ; Defini $iHoras
        $iMinutos = GUICtrlRead($Minuto_Desligar) ; Defini $iMinutos

        MsgBox(0, "Atenção", "O seu SHUTTING DOWN foi ativado, para cancelar feche o programa.")
        GUICtrlSetState($Button3, $GUI_DISABLE)
        $fFlag2 = 1

    Case $Help_Despertador ; Caso clique em $Help_Despertador = Despertador
        MsgBox(0, "Help", "Atenção, assim que for clicado em INICIAR, o cronômtro já estará rodando, ao chegar na hora marcada irá tocar a Música escolhida") ; Mensagem de aviso

    Case $MenuItem3 ; Caso clique em $MenuItem3 = Auto Shutting
        MsgBox(0, "Help", "Ao escolher a hora desejada, ao chegar nela o seu computador irá desligar automaticamente, todas as funções são de acordo com o horário do seu computador") ; Mensagem de aviso

EndSwitch

; Referente à Despertar...
Select
    Case @HOUR = $iHour And Int(@MIN) = Int($iMinute) And $fFlag1 = 0
        $fFlag1 = 1
        GUICtrlSetState($Button1, $GUI_DISABLE)
        SoundPlay($opendialog)
    Case Int(@MIN) <> Int($iMinute) And $fFlag1 = 1
        $fFlag1 = 0
        $iHour = 0
        $iMinute = 0
        GUICtrlSetState($Button1, $GUI_ENABLE)
        SoundPlay("")
        MsgBox(0, "Time Over!", "Seu tempo acabou ! :/")
EndSelect

; Referente à Desligar...
Select
    Case @HOUR = $iHoras And Int(@MIN) = Int($iMinutos) And $fFlag2 = 1
        Shutdown(5) ; Se a hora do computador for igual a hora definida, e o minuto também então desliga o pc
EndSelect
WEnd ; Fim do While

; Programa desenvolvido por Allysson Brenner ;
; Distrubuição R.I.P permitida apenas para o fórum www.autoitbrasil.com , se você mexe na linguagem entre para a nossa família ;

 

Obs.: O botão [Ativar] só estará "ativo" após o usuário digitar algum minuto, senão ele não estará funcional!

 

Teste e comente.

 

Se tiveres dúvidas, não hesite! É só postar...

 

João Carlos

Share this post


Link to post
Share on other sites

@jscript,

na parte que você fala de bloquear o uso de letras na input, ou é você ou sou eu que estou fazendo errado, dei um simples CTRL + V e continua um errinho básico . A questão é que mesmo ativando com números ainda da a mensagem de erro . Segue minha source pra você testar :

 

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>

Local $iHour = 0, $iMinute = 0, $fFlag = 0
Local $Hour = 0, $Minute = 0, $Flag = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Time Manager 0.3", 534, 290, 232, 138)
$MenuItem1 = GUICtrlCreateMenu("Ajuda")
$MenuItem2 = GUICtrlCreateMenuItem("Despertador", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("Shutdown", $MenuItem1)
$MenuItem4 = GUICtrlCreateMenu("Desenvolvimento")
$MenuItem5 = GUICtrlCreateMenuItem("Developer", $MenuItem4)
$MenuItem6 = GUICtrlCreateMenuItem("Fórum", $MenuItem4)
$Group1 = GUICtrlCreateGroup("Despertador", 8, 32, 513, 97)
$Input1 = GUICtrlCreateInput("", 88, 64, 65, 21)
$Input2 = GUICtrlCreateInput("", 240, 64, 65, 21)
$Label1 = GUICtrlCreateLabel("Acordar ás", 16, 64, 70, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("horas, e aos ", 160, 64, 81, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$minutos = GUICtrlCreateLabel("minutos", 312, 64, 50, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Musica = GUICtrlCreateButton("Selecionar Música", 16, 96, 105, 25, $WS_GROUP)
$Ativar = GUICtrlCreateButton("Ativar", 368, 96, 73, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("Parar", 448, 96, 65, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Auto Shutdown", 8, 168, 513, 97)
$Label3 = GUICtrlCreateLabel("Desligar ás", 16, 200, 73, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("", 96, 200, 57, 21)
$Label4 = GUICtrlCreateLabel("horas, e aos", 160, 200, 78, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 240, 200, 65, 21)
$Minuto = GUICtrlCreateLabel("minutos", 312, 200, 50, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("Ativar", 368, 232, 73, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Cancelar", 448, 232, 65, 25, $WS_GROUP)
GUICtrlSetState($Button3, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit

    Case $Button1
        SoundPlay("")

    Case $Musica
        $opendialog = FileOpenDialog("Selecione uma música...", @ScriptDir, "Arquivos (*.mp3;*.wav;*.wma)", 3, "", $Form1) ; abre o arquivo
        If Not @error Or $opendialog <> "" Then
        GUICtrlSetState($Ativar, $GUI_ENABLE)
            ContinueLoop
        EndIf
        GUICtrlSetState($Ativar, $GUI_DISABLE)

    Case $Ativar
        $iHour = GUICtrlRead($Input1)
        $iMinute = GUICtrlRead($Input2)

            If Not IsNumber($iHour) Or Not IsNumber($iMinute) Then
               MsgBox(0, "Atenção", "Você deve definir a hora e o minuto para iniciar o cronômetro!")
               GUICtrlSetState($iHour, $GUI_FOCUS)
               ContinueLoop
            EndIf

            MsgBox(0, "Atenção", "Cronômetro ativado!")
            GUICtrlSetState($Ativar, $GUI_DISABLE)
            GUICtrlSetState($Button1, $GUI_ENABLE)
            ContinueLoop


    Case $Button2
        MsgBox(0, "Atenção", "Cronômetro ativado!")
        $Hour = GUICtrlRead($Input3)
        $Minute = GUICtrlRead($Input4)
        GUICtrlSetState($Button2, $GUI_DISABLE)
        GUICtrlSetState($Button3, $GUI_ENABLE)

    Case $Button3
        Exit

EndSwitch
    Select
               Case @HOUR = $iHour And Int(@MIN) = Int($iMinute) And $fFlag = 0
                       $fFlag = 1
                       SoundPlay($opendialog)
                    GUICtrlSetState($Ativar, $GUI_DISABLE)
                    GUICtrlSetState($Button1, $GUI_ENABLE)
                       MsgBox(0, "Time Over!", "Seu tempo acabou ! :/")
               Case Int(@MIN) <> Int($iMinute) And $fFlag = 1
                       $fFlag = 0
                       $iHour = 0
                       $iMinute = 0
                       SoundPlay("")
    EndSelect

    Select
               Case @HOUR = $Hour And Int(@MIN) = Int($Minute) And $Flag = 0
                       $Flag = 1
                       Shutdown(5)
               Case Int(@MIN) <> Int($Minute) And $Flag = 1
                       $Flag = 0
                       $Hour = 0
                       $Minute = 0
                       Shutdown(5)
    EndSelect
WEnd

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×