Script Segurando o Click Esquerdo Mouse Aperta Letra Z

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

Moderator: Gio

Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Script Segurando o Click Esquerdo Mouse Aperta Letra Z

29 Dec 2019, 02:08

Ola Amigos, Por Favor Alguem poderia dar uma força...
Gostaria de um Script que Segurando o Click Esquerdo Mouse por uns 5 segundos Aperta a Letra Z
Lembrando que o Click do Mouse teria que funcionar normal, a letra só acionaria ao segurar por 5 segundos, muito Obrigado pela atenção
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

30 Dec 2019, 10:29

Bom dia Ailton.

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

Você pode fazer isso usando um while-loop (repetição) e a função GetKeyState() (que verifica o estado de uma tecla ou botão), bem como duas variáveis contadoras para controlar o inicio e o fim.

Code: Select all

~Lbutton::
INICIO := A_TickCount
While GetKeyState("Lbutton", "P")
{
	FIM := A_TickCount
	If (FIM - INICIO > 5000)
	{
		Send Z
		INICIO := A_TickCount
	}
	Sleep 500
}

Em poucas palavras, o código acima faz o seguinte:

1. Foi usado o modificador de hotkey ~ para fazer com que a função original do botão (a de clicar) não seja afetada;
2. Foi criado uma variável INICIO alimentada assim que (e somente quando) o botão é pressionado. Ela recebe o valor do contador de tiques naquele instante;
3. Foi usado um while-loop para repetir várias vezes um bloco de códigos desde que o botão do mouse esteja pressionado;
4. Foi criado uma variável FIM que será atualizada sucessivas vezes com o valor atual do contador de tiques enquanto o loop persistir;
5. Foi criada uma comparação entre a variável INICIO e a variável FIM com o propósito de saber se a diferença entre elas é superior a 5000 tiques (~5000ms ou 5 segundos). Se for, a letra Z é enviada.
6. Foi colocado um sleep de 500ms para que a rotina não consuma muito processamento.


Se tiver alguma dúvida basta postar abaixo :thumbup:
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

05 Jan 2020, 00:44

Ola Amigo Gio, Agradeço Muito a Ajuda, mas eu acho que me expressei ERRADO, o ''Z'' teria que andar junto com o click, para vc entender melhor, vou usar esse script em um Jukebox, onde a letra ''z'' pressionada por 5 segundos zera o playlist, como o jukebox e touch screen só, tenho o click do mouse esquerdo para usar
resumindo, preciso usar a função normal do mouse, mas ao segurar/pressionar ele por 5 segundos o z tem que estar pressionado por 5 segundos tmb, agradeço muito pela sua atenção e paciência, desde já muitíssimo obrigado
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

05 Jan 2020, 00:48

mas certo mesmo, ele teria que acionar depois de uns 2 segundos +ou- apos eu segurar, para não interferir no Click normal, tipo somente quando eu clicar e segurar e que conta o tempo, e não quando eu clickar so uma vez normalmente...
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

06 Jan 2020, 09:07

Bom dia Ailton.

Tenho algumas considerações a fazer nesse caso: as vezes um programa interpreta um sinal down como sendo um segurar da tecla, mas as vezes não. Teste o código abaixo e vamos saber se um sinal down por 5 segundos é o suficiente ou se temos que enviar vários por segundo.

Code: Select all

~Lbutton::
NAO_APERTADO := 1
INICIO := A_TickCount
While GetKeyState("Lbutton", "P")
{
	FIM := A_TickCount
	If (FIM - INICIO > 2000)
	{
		If (NAO_APERTADO = 1)
		{
			Send {z down}
			NAO_APERTADO := 0
		}
		INICIO := A_TickCount
	}
	Sleep 200
}
Send {z up}
Return
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

06 Jan 2020, 23:25

Ainda não deu certo amigo, teria que ser como te disse mesmo, ao clicar normalmente no botão Esquerdo o ''z'' não pode ser apertado, (senão ele troca a faixa da musica) ele teria que vir ''pressionado'' junto ao click mesmo, por 5 segundos como havia comentado antes, so assim vou conseguir essa função de ''zerar' o playlist, eu acho que teria que ser ago como hold/segurar, pois send acho que não da certo... vc acha que consegue amigo !!???
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

07 Jan 2020, 09:04

Bom dia.

Não existe essa opção "hold". Foi isso que quiz dizer antes com "se temos que enviar vários por segundo". O sinal é apenas Send, podendo ser Down (pressionado) ou Up (solto). A função de "segurar" originalmente é apenas enviar um sinal Down e esperar um pouco até enviar um sinal Up. O tempo entre os sinais é o tempo em que a tecla permaneceu apertada. O problema é que alguns programas entendem de outra forma, visto que se tornou padrão que os teclados disparem múltiplos sinais quando uma tecla é pressionada por alguns segundos. Por isso, algumas janelas passaram a interpretar "segurar" como sendo o envio de vários sinais em um curto espaço de tempo...

Agora para saber se o programa em questão entende dessa forma ou da outra somente testando. De qualquer forma aqui vai um outro script que simula o ato de enviar múltiplos sinais (também fiz com que o sinal up só seja enviado se algum sinal Down foi enviado antes).

Code: Select all

~Lbutton::
NAO_APERTADO := 1
INICIO := A_TickCount
While GetKeyState("Lbutton", "P")
{
	FIM := A_TickCount
	If (FIM - INICIO > 2000)
	{
		If (NAO_APERTADO = 1)
		{
			NAO_APERTADO := 0
		}
		Send {z down}
	}
	Sleep 20
}
If (NAO_APERTADO = 0)
{
	Send {z up}
}
Return

:arrow: DICA: Você pode analisar os sinais que o seu teclado envia ao Windows através da diretiva #InstallKeybdHook. Ao usar essa diretiva nas linhas de cima em qualquer script que não termine imediatamente, você poderá clicar com o botão direito do mouse no ícone de H verde que fica no canto inferior-direito da tela (na bandeja do tray. As vezes precisa clicar na seta para acessar ícone ocultos) e selecionar Open -> View -> Key History and Script Info.

Quando você fizer isso, todas os sinais de teclas que você gerar com o seu teclado serão anotados e disponibilizados em lista para você (atualize a lista apertando F5 a qualquer momento).

Eis o que aparece quando seguro a tecla Z do meu teclado por alguns segundos:
telca z segurada.png
telca z segurada.png (7.76 KiB) Viewed 8748 times

:arrow: Como pode ver, o teclado enviou múltiplos sinais de Z Down em intervalos de aprox. 30 a 50 milisegundos terminando com um único sinal Z up quando eu soltei a tecla.
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

08 Jan 2020, 23:13

Ola Amigo, Desculpe a Demora Para Responder, Estava Chegando Muito Tarde do Trabalho, Cara, ''ESTAMOS QUASE LA'' A Função do ''Z'' de Zerar o playlist Já Deu Certo, Agora só precisava do Tempo de 2 ou 3 Segundinhos antes dele disparar o Z (Segurando)... o ''Z'' ainda esta caminhando Junto do Click, ou seja quando Clicka ja sai o ''z'' de cara, precisava de uns 2 segundinhos +ou- para poder usar o click de boa
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

09 Jan 2020, 09:02

Bom dia Ailton.

O último script já corrigiu esta questão, você o adaptou de alguma forma? Se sim, isso pode ter alterado a lógica dele.

Veja no pseudo-código abaixo como estava a lógica da rotina proposta no código anterior:

Code: Select all

Quando aperta Lbutton::
{
	ENQUANTO Lbutton estiver apertado
	{
		Conta o tempo em que está apertado
		Se o tempo for maior que 2 segundos
		{
			Envia Z apertado
			Indica que Z foi apertado ao menos 1 vez
		}
		Espera 20ms
	}
	QUANDO Lbutton for solto
	{
		Se Z foi apertado ao menos 1 vez
		{
			Envia Z solto
		}
	}
}

:arrow: Antes o Z up era enviado incondicionalmente, mas agora ele é enviado somente se o Z down foi enviado em algum momento, e o Z down só é enviado se segurou 2 segundos o Lbutton.

Parte comentada:

Code: Select all

If (NAO_APERTADO = 0) ; Se é falso que não foi apertado, é porque foi apertado.
{
	Send {z up}
}
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

09 Jan 2020, 20:15

Amigo, mas não esta dando... poderia testar ai por favor... Deixei Como vc me mandou... veja por favor se tem algo errado

~Lbutton::
NAO_APERTADO := 1
INICIO := A_TickCount
While GetKeyState("Lbutton", "P")
FIM := A_TickCount
If (FIM - INICIO > 2000)
If (NAO_APERTADO = 1)
NAO_APERTADO := 0
Send {z down}
Sleep 20
If (NAO_APERTADO = 0)
Send {z up}
Return
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

09 Jan 2020, 20:22

Boa noite Ailton.

Você removeu as linhas com chaves? (Os símbolos { e })?

Isso explicaria o comportamento que você está relatando, pois as chaves são importantes: é graças a elas que mais de uma linha se torna condicionada (elas determinam blocos de códigos, e as condicionais If se ligam aos blocos inteiros. Se não houver um bloco depois de qualquer If então apenas a próxima linha será condicionada ao if). Dessa forma, ao remover as linhas com chaves, o comando send {z down} deixou de ser condicionado aos 2 segundos de aperto.

:arrow: Teste o código com todos os símbolos de chaves escritos, exatamente conforme tinha postado e daí sim veja se funciona.
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

10 Jan 2020, 19:28

Gio, vc poderia por gentileza me enviar o código já compilado.... estou enlouquecendo amigo kkk, só posso estar fazendo algo errado, pois quando tiro os ''{ }'' da +ou- certo, mas quando mando copio/colo o código não da certo, não acontece nada... por favor

[email protected]
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

15 Jan 2020, 11:31

Ola Gio, Quando Tiver um Tempinho, por favor não esqueça de mandar o script pelo e-mail blz
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

15 Jan 2020, 15:26

Boa tarde Ailton.

Acredito que um script compilado seria a mesma coisa, pois as instruções são idênticas. Teste rodar o script anterior (com as chaves) no bloco de notas e veja se ele aguarda os 2 segundos antes de enviar os comandos de Z, da forma como você descreveu.

:arrow: O que deve estar acontecendo é que ainda não acertamos a forma pela qual esse seu aplicativo de músicas interpreta os sinais de teclas. O problema é que somente você pode efetuar as mudanças no script e depois rodar testes. Tente compreender os comandos disponíveis, incluindo os sinais de tecla Down e Up e atualize o script testando-o no aplicativo até que o comportamento desejado ocorra.
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

15 Jan 2020, 22:43

Ola Chefe, BLZ, poderia dar uma checada por favor... ''Nesse script não consigo'' mas quando tiro as ''aspas'' / da quase certo... e eu nem estou usando ele no programa, estou testando antes direto em na windows ...

Code: Select all

~Lbutton::
NAO_APERTADO := 1
INICIO := A_TickCount
While GetKeyState("Lbutton", "P")
{
FIM := A_TickCount
If (FIM - INICIO > 2000)
{
If (NAO_APERTADO = 1)
{
NAO_APERTADO := 0
}
Send {z down}
}
Sleep 20
}
If (NAO_APERTADO = 0)
{
Send {z up}
}
Return
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

19 Jan 2020, 18:59

O que Me Diz Gio !? por favor amigo
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

20 Jan 2020, 09:42

Bom dia Ailton.

Testei o script que você postou e funcionou normal aqui. No bloco de notas seguro o botão do mouse e após 2 segundos ele começa a repetir o Z. Quando solto o botão do mouse, ele para.

Que versão do AutoHotkey você está utilizando?

Code: Select all

msgbox % a_ahkversion
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

20 Jan 2020, 23:34

Ola Gio, Cara, POR FAVOR, Compila ele e me manda, ''simplesmente não da certo'' já tentei de tudo, Atualizei a versão, copie e colei o código, nas não vei amigo... Quebra essa... TO ENLOUQUECENDO, não sei o que to fazendo de errado !!!!

Meu E-mail e: [email protected]
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

21 Jan 2020, 16:06

Boa tarde Ailton.

Fiz um video com a demonstração do código e algumas explicações.

Segue o link:
https://www.dropbox.com/s/e10xi19tkmu3i4w/Exemplo%20send%20Z.avi?dl=1
Ailton
Posts: 20
Joined: 11 Jul 2019, 22:10

Re: Script Segurando o Click Esquerdo Mouse Aperta Letra Z

21 Jan 2020, 21:12

Boa Noite... Ola Gio, primeiramente, obrigado pela sua paciência e ate mesmo de ter feito upload do vídeo... sem palavras... mas vamos la... na vdd nem estou testando esse script no programa, estou tendando em uma bloco de notas comum, no windows mesmo, porem simplesmente, ''NÃO FAZ NADA'' da forma que vc mandou... agora, basta saber o que ''EU estou fazendo de errado''

BOTÃO DIREITO / NOVO / AutoHotkey Script ----- ((CORRETO !!??))
EM SEGUIDA COPIO E COLO O CÓDIGO QUE VC ME MANDOU ----- ((CORRETO !!??))

ACREDITO QUE SEJA ISSO...

Assim como vc envio o vídeo, seria pedir-lhe muito pra que mande tmb o script ja pronto em rar para eu usa-lo aqui !!?? por favor...

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 39 guests