Page 1 of 1

Desativar/Ativar Seta do Mouse

Posted: 10 Sep 2019, 11:27
by k0FF1
olá, já vai me desculpando mais sou novo em ahk (e um pouco em programação avançada) gostaria de elaborar um script no sentido de eu desativar o mouse e depois já ativa-lo depois de uns ms com apenas 1 click de um atalho, pois tentei e nao consegui proceder, se alguem pude me ajudar, agradeço desde já :D

Re: Desativar/Ativar Seta do Mouse

Posted: 10 Sep 2019, 12:27
by Gio
Boa tarde k0FF1.

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

O que você está pedindo é bem simples de fazer. Os comandos que você vai precisar serão o BlockInput e o Sleep. O primeiro (BlockInput) vai fazer o windows ignorar (ou deixar de ignorar) os sinais de movimento do cursor que o mouse enviar ao windows, e o segundo (sleep) vai fazer o script aguardar um tempo em milisegundos (que vamos usar para criar a espera entre a chamada de desativação e de reativação do mouse).

O código abaixo faz exatamente isso, delimitando um intervalo de 3000 milisegundos entre a desativação e a nova ativação do movimento do mouse. Para acionar, basta apertar a tecla f2 do seu teclado uma vez que o script esteja em execução. O mouse vai deixar de poder ser mexido por um total de 3 segundos.

Code: Select all

f2::
BlockInput, MouseMove
Sleep 3000
BlockInput, MouseMoveOff
Return
:arrow: Também é possível esconder o cursor do mouse, movê-lo para algum lugar, fazê-lo ignorar também os cliques ou até restringilo a uma área específica da tela (ou uma combinação dessas opções). Se tiver necessidade de alguma dessas opções, sinta-se livre para perguntar abaixo :thumbup:

Re: Desativar/Ativar Seta do Mouse

Posted: 10 Sep 2019, 15:00
by k0FF1
Gio wrote:
10 Sep 2019, 12:27
Boa tarde k0FF1.

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

O que você está pedindo é bem simples de fazer. Os comandos que você vai precisar serão o BlockInput e o Sleep. O primeiro (BlockInput) vai fazer o windows ignorar (ou deixar de ignorar) os sinais de movimento do cursor que o mouse enviar ao windows, e o segundo (sleep) vai fazer o script aguardar um tempo em milisegundos (que vamos usar para criar a espera entre a chamada de desativação e de reativação do mouse).

O código abaixo faz exatamente isso, delimitando um intervalo de 3000 milisegundos entre a desativação e a nova ativação do movimento do mouse. Para acionar, basta apertar a tecla f2 do seu teclado uma vez que o script esteja em execução. O mouse vai deixar de poder ser mexido por um total de 3 segundos.

Code: Select all

f2::
BlockInput, MouseMove
Sleep 3000
BlockInput, MouseMoveOff
Return
:arrow: Também é possível esconder o cursor do mouse, movê-lo para algum lugar, fazê-lo ignorar também os cliques ou até restringilo a uma área específica da tela (ou uma combinação dessas opções). Se tiver necessidade de alguma dessas opções, sinta-se livre para perguntar abaixo :thumbup:
obg mano, vou testar aqui, desde obg 😄

Re: Desativar/Ativar Seta do Mouse

Posted: 10 Sep 2019, 21:45
by k0FF1

Code: Select all

f2::
Send {C}
Sleep 15
Send {C}
Return
pode conferir oqe pode está errado? tipo estou querendo que o script click em uma tecla, e após 15ms ele click novamente, tentei com esse script acima, mais ele não faz :salute:

Re: Desativar/Ativar Seta do Mouse

Posted: 10 Sep 2019, 22:15
by k0FF1

Code: Select all

f2::
Send {C}
Sleep 100
Send {C}
Return
eu fiz esse script, ele faz oq eu quero, só que quando eu executo ele, a janela em qual eu executo, parece que meu mouse fica clicando em um lugar especifico na tela, exemplo:
eu aperto F2, ele aperta o C, e logo depois aperta o C de novo, só que depois um pouco mais abaixo, há um click como se fosse o mouse clicando, tem alguma solução pra isso?

Re: Desativar/Ativar Seta do Mouse

Posted: 11 Sep 2019, 08:33
by Gio
Bom dia k0FF1.

Este clique que você está relatando não está sendo causado pelo script (pois não há código nenhum de clique nele). Sendo assim, o mais provável é que seja algo que o programa alvo esteja fazendo (e não o mouse em si).

De qualquer forma, se for um clique de mouse mesmo (e não outra ação), talvez o script abaixo funcione para impedi-la.

O código adicionado ao exemplo visa impedir qualquer clique do mouse durante o intervalo desejado (Além de impedir o movimento do mouse como já fazia antes).

Code: Select all

f2::
BlockInput, MouseMove
NAO_CLICAR := 1
Sleep 3000
BlockInput, MouseMoveOff
NAO_CLICAR := 0
Return


#If (NAO_CLICAR)
Lbutton::
Rbutton::
Return
Testei o código no bloco de notas e pude confirmar que os cliques do mouse foram bloqueados juntamente com o movimento durante 3 segundos ao pressionar o F2 (durante esse período, clicar não mudava a linha do texto onde o cursor estava).

:arrow: Se o script não funcionar, é sinal de que a ação não é um clique do mouse, mas sim algo diferente que o programa alvo esteja fazendo. Nesse caso, somente investigando o programa seria possível entender o que é isso. Também vale a pena verificar se não tem um segundo script rodando junto com esse (e que possa estar fazendo o clique).