Inserir sleep no meio de um argumento sem quebra de linha. Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

AGNES

Inserir sleep no meio de um argumento sem quebra de linha.

30 Sep 2021, 13:31

Prezados, tudo bem? Espero que sim!

Preciso de uma pequena ajuda que talvez seja boba mas que não estou conseguindo uma solução ou não estou executando corretamente.

Costumo escrever meus códigos em uma única linha para que os argumentos determinem os mesmos movimentos que executo nas minhas atividades.

Code: Select all

EX:
Send, e{TAB}{TAB}3203{TAB}5205{TAB}12{TAB}{TAB}{TAB}{TAB}90567{TAB}1{F12}{ENTER}{RIGHT}{ENTER}r{TAB}{TAB}{TAB}3203{TAB}5205{TAB}12{TAB}{DOWN}{TAB}{TAB}{TAB}{F12}{ENTER}{RIGHT}{ENTER}
Send, e{TAB}{TAB}6702{TAB}7206{TAB}12{TAB}{TAB}{TAB}{TAB}115{TAB}2{F12}{ENTER}{RIGHT}{ENTER}r{TAB}{TAB}{TAB}6702{TAB}7206{TAB}12{TAB}{DOWN}{TAB}{TAB}{TAB}{F12}{ENTER}{RIGHT}{ENTER}
Send, e{TAB}{TAB}6703{TAB}7205{TAB}12{TAB}{TAB}{TAB}{TAB}32469{TAB}2{F12}{ENTER}{RIGHT}{ENTER}r{TAB}{TAB}{TAB}6703{TAB}7205{TAB}12{TAB}{DOWN}{TAB}{TAB}{TAB}{F12}{ENTER}{RIGHT}{ENTER}
Send, e{TAB}{TAB}6703{TAB}5202{TAB}12{TAB}{TAB}{TAB}{TAB}32469{TAB}1{F12}{ENTER}{RIGHT}{ENTER}r{TAB}{TAB}{TAB}6703{TAB}5202{TAB}12{TAB}{DOWN}{TAB}{TAB}{TAB}{F12}{ENTER}{RIGHT}{ENTER}
cada linha dessas é um bloco de execução completo.

Porém a internet na minha empresa é bem abaixo da qualidade da minha residência e tem sempre um grande atraso no carregamento das telas, o que acaba descontinuando o processo algumas vezes.
Para melhorar o desempenho eu necessito de um argumento para inserir uma pequena pausa com tempo predefinido (tipo um sleep), porém na mesma linha de comando seguindo o mesmo padrão que uso hoje.

Code: Select all

EX:
Send, e{TAB}{TAB}3203{TAB}5205{TAB}12{TAB}{TAB}{TAB}{TAB}90567{TAB}1{F12}{ENTER}{RIGHT}{ENTER}{"Sleep, 2000"}r{TAB}{TAB}{TAB}3203{TAB}5205{TAB}12{TAB}{DOWN}{TAB}{TAB}{TAB}{F12}{ENTER}{RIGHT}{ENTER}
Tipo isso, espero que tenham entendido rs. Conhecem alguma forma de fazer isso? de antemão agradeço!

Atte.:
Last edited by BoBo on 30 Sep 2021, 15:10, edited 1 time in total.
Reason: Added [code][/code]-tags.
User avatar
Gio
Posts: 1248
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Inserir sleep no meio de um argumento sem quebra de linha.  Topic is solved

01 Oct 2021, 08:55

Bom dia AGNES.

Seja bem-vindo ao fórum da comunidade do AutoHotkey :thumbup:

Infelizmente tal sintaxe não existe na linguagem. Os comandos Send e Sleep são comandos diferentes, e embora exista uma tecla {sleep} ela é uma tecla do teclado e não uma alusão ao comando Sleep. Dessa forma, o que você pode fazer é colocar um comando Sleep em uma linha abaixo de um Send e depois continuar com um novo comando Send após o sleep.

Exemplo:

Code: Select all

Send, {TAB}{TAB}123
Sleep, 1000
Send {TAB}{TAB}456
Sleep, 1000
Send {TAB}{TAB}789


Tendo dito isto, vejo que sua automação usa vários TABs, o que parece sugerir que você está usando o comando Send para automatizar uma tela de programa. Embora isso seja possível, não é a melhor forma de fazer, principalmente no quesito confiabilidade.

Sugiro que tente implementar uma rotina com comandos do tipo ControlSend, ControlSetText, ControlClick, ControlFocus e etc. Esses comandos podem ser facilmente configurados para direcionar ações para controles específicos de uma tela (um botão ou um campo, por exemplo). Eles são bastante confiáveis uma vez que estejam corretamente configurados.

:arrow: O principal parâmetro que você precisa para configurar corretamente um desses comandos é o ClassNN do controle-alvo. Para obtê-lo, abra o WindowSpy (ferramenta embutida no autohotkey), acione a checkbox "follow mouse" e depois coloque o mouse em cima do controle-alvo. A tela do WindowSpy irá te dizer qual o ClassNN daquele controle.

:arrow: O WindowSpy pode ser acessado facilmente a partir de qualquer script em execução: basta clicar com o botão direito do mouse no ícone de H verde que fica no canto inferior-direito da tela (system tray) e selecionar "Window Spy".

Espero ter ajudado, se ainda tiver alguma dúvida sobre isso, basta postar abaixo :thumbup:

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 8 guests