Olá, gostaria de um script que detectasse a parada do curso e enviasse comandos apenas enquanto ele estiver parada. Por exemplo, se o cursor estiver parado envia "p + 100 ms + p" a cada 100 ms.
Agradeço a atenção!
Detecção da parada do cursor
Moderator: Gio
Re: Detecção da parada do cursor
Boa noite LuanMTS.
Para detectar a parada do mouse, você poderia criar um rotina com timer que buscaria sempre a posição atual e compararia com a posição imediatamente anterior. Caso a posição seja a mesma após um lapso de tempo desejado, isso significa que o mouse esteve parado por aquele período, e isso pode ser usado como gatilho para o envio da tecla P (por exemplo).
Exemplo:
No código abaixo, quando o mouse ficar parado por mais de 100ms, ele enviará um sinal de tecla P a cada 100ms (note que 100ms é 0,1 segundo, ou seja, é um tempo muito curto, o que significa que você essencialmente precisa estar mexendo o mouse quase o tempo todo para que o sinal de P não seja enviado).
Espero ter ajudado, se ainda tiver alguma dúvida, basta postar abaixo.
Para detectar a parada do mouse, você poderia criar um rotina com timer que buscaria sempre a posição atual e compararia com a posição imediatamente anterior. Caso a posição seja a mesma após um lapso de tempo desejado, isso significa que o mouse esteve parado por aquele período, e isso pode ser usado como gatilho para o envio da tecla P (por exemplo).
Exemplo:
No código abaixo, quando o mouse ficar parado por mais de 100ms, ele enviará um sinal de tecla P a cada 100ms (note que 100ms é 0,1 segundo, ou seja, é um tempo muito curto, o que significa que você essencialmente precisa estar mexendo o mouse quase o tempo todo para que o sinal de P não seja enviado).
Code: Select all
#Persistent
SetBatchLines, -1
TEMPO_PARADO := 0
SetTimer, COLETAR_MOUSE_E_TESTAR, 34
Return
COLETAR_MOUSE_E_TESTAR:
POS_X_ANTERIOR := PosX ; Primeiro, salvamos a posição imediatamente anterior.
POS_Y_ANTERIOR := PosY
MouseGetPos, PosX, PosY ; Depois, coletamos a posição atual.
If ((PosX = POS_X_ANTERIOR) AND (PosY = POS_Y_ANTERIOR)) ; E em seguida, comparamos as duas. Se forem iguais, faremos a adição do tempo do timer.
{
TEMPO_PARADO += 34
}
else ; Mas se não forem, zeramos a contagem.
{
TEMPO_PARADO := 0
}
If (TEMPO_PARADO >= 100) ; Em qualquer caso, sempre que a contagem exceder 100ms, enviamos o sinal de P e depois zeramos de novo a contagem.
{
Send P
TEMPO_PARADO := 0
}
Return
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Return to “Ajuda e Suporte Geral”
Who is online
Users browsing this forum: No registered users and 26 guests