Ajuda com Script

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ajuda com Script

Re: Ajuda com Script

by Bandolero1571 » 23 May 2022, 17:53

Muito obrigado pela resposta Gio, eu estava tão perdido que nem sabia expressar minha dúvida rs

Consegui adaptar o script e funcionou como eu queria. Mais uma vez muito obrigado :clap:

Re: Ajuda com Script

by Gio » 23 May 2022, 08:52

Bom dia Bandolero1571.

Você pode fazer uso da variável embutida A_tickCount para isso. Essa variável contém o número aproximado de milisegundos desde que o sistema foi iniciado. Sendo assim, o que você deve fazer é salvar o valor dela no início da execução e depois comparar (subtraindo) com o valor obtido em cada nova iteração de um loop. Caso o valor da diferença ultrapasse o número de milisegundos que você quiz que a execução durasse, você termina o loop.

Exemplo: O código abaixo exibe um contador durante 10 segundos. Veja como o loop executa verificando e demonstrando o tempo transcorrido através da diferença em A_tickCount e como ele para quando a diferença atinge 10 segundos.

Code: Select all

INICIO := A_tickCount

Loop
{
	If (A_tickCount - INICIO) >= 10000 ; Se a diferença for maior que 10000 milisegundos (10 segundos)...
	{
		Break ; Terminamos o loop abruptamente aqui.
	}
	; Do contrário prosseguimos calculando a diferença e exibindo no tooltip
	TEMPO_TRANSCORRIDO := (A_tickCount - INICIO) / 1000
	ToolTip, Tempo Transcorrido: %TEMPO_TRANSCORRIDO%
}
msgbox, 0, Aviso, Contagem dos 10 segundos terminada ! ; O código que estiver a partir daqui executa APÓS o loop terminar.
OBS: o contador não chega a exatos 10.0000 por duas razões: primeiro que as instruções levam alguns milisegundos para serem processadas (veja SetBatchLines) e segundo que a verificação no código está ANTES do comando que atualiza o tooltip (se fosse depois o último tooltip seria em 10.000120 ou coisa parecida).

Ajuda com Script

by Bandolero1571 » 21 May 2022, 21:35

Salva rapaziada, boa noite!

Estou tentando fazer um script que faça a repetição de um comando por um tempo determinado e em seguida pause. Depois de algumas pesquisas cheguei no seguinte Script:

Code: Select all

a::
SetTimer, Teste, 500
Return

Teste:
ControlSend, ahk_parent, {b down}, ahk_class ...
ControlSend, ahk_parent, {b up}, ahk_class ...
Return
O problema é que ele fica repetindo o envio do "b" indefinidamente enquanto o meu objetivo é que ele execute por apenas alguns segundos. Então venho até vocês solicitar ajuda :D Como fazer essa repetição durar um período de 5s, por exemplo?
Desde já agradeço
Forte abraço.

Top