Pular para o conteúdo principal

Postagem em destaque

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu

BlackTDN :: Batch Alarm Clock

Batch Alarm Clock

Às vezes tenho dificuldade em acordar cedo, principalmente as 04:30 da matina, e, por causa disso, experimentei vários sistemas “despertadores” mas nenhum me atendeu. Resolvi montar o meu próprio. Que fosse simples e que me despertasse na hora certa. Minha primeira opção foi fazer usando comandos do Windows (a próxima versão será em PowerShell).

Nesta primeira versão temos 2 opções de “programar o alarme”. A primeira via linha de comando onde informamos a hora para o despertar e, opcionalmente, a música a ser tocada (no exemplo “Negro Drama: Racionais MC´s”); a segunda é executando o “script” e informando a hora em que o “Alarme” deverá “despertar” (neste caso não é possível personalizar a música: sempre tocará a música definida no “script”).

 

Bem, além de mim, ninguém mais é obrigado a acordar ouvido “Negro Drama” então, para alterar a musica “DEFAULT” altere a seguinte atribuição:

alarmClock DEFAULT song

SET tDSong="C:/\temp/\Racionais_MCs_Negro_Drama.mp3"

Eis o código:

@Echo off&setlocal

    color f0
    title Batch Alarm Clock

    SET tDSong="C:/\temp/\Racionais_MCs_Negro_Drama.mp3"
    IF [%1] NEQ [] (
        set tSetA=%1:00,00
        IF [%2] NEQ [] (
            set tPSong=%2
        ) else (
            set tPSong=%tDSong%
        )
        goto :top
    )

    cls
    echo.
    echo.
    echo.
    echo Use the 24 hour clock: example 15:00 for 3:00PM
    echo.
    echo TIME: %time%
    echo.
    set /p tSetG=Set Alarm:
    set tSetA=%tSetG:~0,5%:00,00
    set tPSong=%tDSong%

    goto :top

:top
    goto calcTime
    :sleep
    if "%tTime:~0,5%" == "%tSetA:~0,5%" (
            cls
            echo Date             : %date%
            echo.
            echo Time             : %tTime%
            echo Alarm is set for : %tSetA%
            echo.
            call bigtext ALARM !!!
            start mplay32 /play /close %tPSong%
            REM %tPSong%
            goto :end
    ) else (
            PING -n 2 127.0.0.1 > NUL
            REM TIMEOUT /T 1 /NOBREAK > NUL
    )
    goto :top

:end
endlocal
goto :EOF  

:calcTime

    cls

    set hour=%tSetA:~0,2%
    if "%hour:~1,1%" == ":" set hour=0%hour:~0,1%
    set min=%tSetA:~3,2%
    if "%min:~1,1%" == ":" set min=%tSetA:~2,2%
    set secs=%tSetA:~6,6%
    if "%secs:~1,1%" == "," set secs=%tSetA:~5,6%
    set tSetA=%hour%:%min%:%secs%
    set tMatch=%tSetA%

    set tTime=%time%
    set hour=%tTime:~0,2%
    if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
    set min=%tTime:~3,2%
    if "%min:~0,1%" == " " set min=0%min:~1,1%
    set secs=%tTime:~6,6%
    if "%secs:~0,1%" == " " set secs=0%secs:~1,6%
    set tTime=%hour%:%min%:%secs%
    echo Date             : %date%
    echo.
    echo Time             : %tTime%

    echo Alarm is set for : %tSetA%
    set /A tMatch=(1%tMatch:~0,2%-100)*360000+(1%tMatch:~3,2%-100)*6000+(1%tMatch:~6,2%-100)*100+(1%tMatch:~9,2%-100)
    set /A tnTime=(1%tTime:~0,2%-100)*360000+(1%tTime:~3,2%-100)*6000+(1%tTime:~6,2%-100)*100+(1%tTime:~9,2%-100)

    set t24=24:00:00,00
    set /A tn24=(1%t24:~0,2%-100)*360000+(1%t24:~3,2%-100)*6000+(1%t24:~6,2%-100)*100+(1%t24~9,2%-100)

    if %tMatch% LSS %tnTime% (
        set /a tnTime=%tn24%-%tnTime%
        set /a tElapTime=%tn24%-%tnTime%+%tMatch%
    ) else (
        set /a tElapTime=%tMatch%-%tnTime%
    )

    set /A tElapTimeH=(%tElapTime%/360000)
    set /A tElapTimeM=((%tElapTime%-%tElapTimeH%*360000)/6000)
    set /A tElapTimeS=((%tElapTime%-%tElapTimeH%*360000-%tElapTimeM%*6000)/100)
    set /A tElapTimeHS=(%tElapTime%-%tElapTimeH%*360000-%tElapTimeM%*6000-%tElapTimeS%*100)

    if %tElapTimeH%  LSS 10 set tElapTimeH=0%tElapTimeH%
    if %tElapTimeM%  LSS 10 set tElapTimeM=0%tElapTimeM%
    if %tElapTimeS%  LSS 10 set tElapTimeS=0%tElapTimeS%
    if %tElapTimeHS% LSS 10 set tElapTimeHS=0%tElapTimeHS%

    echo.

    set swElapTile=%tElapTimeH%:%tElapTimeM%:%tElapTimeS%,%tElapTimeHS%

    echo ElapTime         : %swElapTile%

    echo.
    echo %tnTime%
    echo %tMatch%
    echo %tElapTime%
goto :sleep

Se estiver utilizando uma versão do Windows superior ao XP poderá substituir a instrução usada como “sleep”

PING -n 2 127.0.0.1 > NUL

por

TIMEOUT /T 1 /NOBREAK > NUL

Para elaborar o meu despertador peguei emprestado fragmentos de “scripts” obtidos em:

  1. How to Program a Batch File Alarm Clock;
  2. Print time in a batch file (milliseconds) ; e
  3. BigText.cmd - Batch file to echo giant size characters

Os meus arquivos ( alarmClock.bat e bigText.bat ) salvei em windows\system32.

Para programar o alarme (usando a música “DEFAULT”):

alarmClock Set alarmClock Execute alarmClock Match

alarmClock MediaPlayer

Para programar o alarme (informando a música a ser tocada):

alarmClock Set alarmClock Execute alarmClock Match

alarmClock MediaPlayer 

mplay32 poderá não estar disponível em versões mais atuais do Windows, como por exemplo a 7. Neste caso, poderemos substituir:

start mplay32 /play /close %tPSong%

por

%tPSong%

Deixando o SO resolver com qual aplicativo abrirá o arquivo.

Para obter o código clique aqui ou aqui

[]s
иαldσ dj

Comentários

Postagens mais visitadas deste blog

BlackTDN :: RLeg ~ Desvendando a Função ParamBox

Para quem precisar desenvolver uma interface de entrada de dados, coisa rápida, e não quer ter aquele trabalhão danado que todos já sabemos, o Protheus tem uma função que ajuda muito, é uma interface semelhante a função Pergunte, porém com muito mais opção de objeto de entrada de dados, alias até colocar o scrollbox desta interface com todos os objetos em outra MsDialog ou Wizard é simples. Vejam o exemplo abaixo, boa sorte! Rleg. //---------------------------------------------------------- // Função exemplo utilizando a função ParamBox() //---------------------------------------------------------- User Function xParamBox() Local aRet := {} Local aParamBox := {} Local aCombo := {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"} Local i := 0 Private cCadastro := "xParambox" // ---------------

BlackTDN :: Customizando a interface de Login no Protheus e by You

A publicação “ BlackTDN :: By You e sua nova tela de login ”  de nosso amigo OBona deu o que falar e, em função disso, esse que a muito não vos escreve resolveu criar uma versão onde será possível personalizar, “por completo”, a tela de login no Protheus/by You. Considerando que OBona já havia “mapeado, identificado e customizado” as imagens peguei-as emprestadas para o exemplo que se segue: O primeiro passo para a customização “total” da interface de login do Protheus/by You será implementar o “Ponto de Entrada” ChgPrDir (Diretório de impressão) . Usaremos esse PE juntamente como programa U_FindMsObject.prg (apresentado pela primeira vez em: Protheus :: ADVPL : The Container : Presents Pandora's box ). Diferente do exemplo proposto por OBona, que substitui, durante o processo de compilação, as imagens padrões do sistema (excluindo-as) por imagens customizadas (com o mesmo nome) este novo exemplo mantém, no RPO, as imagens padrões adicionando novas imagens customizadas que serã

Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login

Ferne$ perguntou: "...é possível abrir alguma rotina do sistema sem solicitar login ao usuário, como por exemplo a rotina MATA010..." Sim Ferne$, é possível sim. Abaixo um Exemplo para a Chamada à função MATA010 sem a necessidade de Login no sistema. #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/ Funcao: MATA010Ex Data: 30/04/2011 Autor: Marinaldo de Jesus Descricao: Executar a Funcao MATA010 diretamente sem a necessidade de LOGIN no Protheus Sintaxe: 1 ) U_MATA010Ex ( Chamada diretamente na Tela de Entrada do Sistema ) ; ou 2 ) totvsclient.exe -q -p=u_MATA010Ex -a=01;01 -c=rnp_local -e=rnp -m -l ( Chamada Via Linha de Comando ) /*/ User Function MATA010Ex( cEmpFil ) Local aEmpFil Local bWindowInit := { || __Execute( "MATA010()" , "xxxxxxxxxxxxxxxxxxxx" , "MATA010" , "SIGAFAT" , "SIGAFAT", 1 , .T. ) } Local cEmp Local cFil Local cMod Local cModName := "SIGAFAT" DEFA