Click sostenido de ratón

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

Nucleorion
Posts: 50
Joined: 11 Dec 2016, 11:33

Click sostenido de ratón

Post by Nucleorion » 17 Jun 2022, 04:50

Tengo un código que deja pulsado el click izdo del ratón, funciona bien si lo asigno por ejemplo a control+y pero si lo asigno a control + LButton no funciona.

Code: Select all

^g::
Loop
{
	if GetKeyState("f", "P")
	break
	Send, {f down}
	Sleep 50
}
return

^y::
Loop
{
	if GetKeyState("LButton", "P")
	break
	Send, {LButton down}
	Sleep 50
}
return

^LButton::
Loop
{
	if GetKeyState("LButton", "P")
	break
	Send, {LButton down}
	Sleep 50
}
return
Si le asigno a control + LButton mantener la f pulsada si funciona pero si le asigno mantener el click no va.

User avatar
ositoMalvado
Posts: 180
Joined: 24 Dec 2019, 12:02
Contact:

Re: Click sostenido de ratón

Post by ositoMalvado » 16 Aug 2022, 18:30

Hola amigo, prueba esto, traduzco las instrucciones:
al presionar control+botón izquierdo, si la variable "estado" es apagado (false) entonces presionar abajo botón izquierdo, de lo contrario soltar botón izquierdo, finalmente decimos que "estado" es lo contrario de sí mismo, si es "true" sera "false" y viceversa, siendo útil para encender y apagar el script

Code: Select all

^LButton::
    if !estado
        SendInput, {lbutton down}
    else
        SendInput, {lbutton up}
    estado:=!estado
return
My WEB some useful stuff

Nucleorion
Posts: 50
Joined: 11 Dec 2016, 11:33

Re: Click sostenido de ratón

Post by Nucleorion » 02 Nov 2022, 03:24

El problema de ese codigo es que para pararlo no basta con hacer click, hay que hacer control click. Si lo paras haciendo click, la proxima vez que se use no funcionará, ya que "estado" será true y pasara al ser false.

Lepes
Posts: 141
Joined: 06 May 2021, 07:32
Location: Spain

Re: Click sostenido de ratón

Post by Lepes » 02 Nov 2022, 08:56

Yo para no complicarme con esas cosas hice lo siguiente:
- Shift + Lbutton : inicia la tarea (pone a true una variable global y se repite el bucle mientras esa variable es true)
- Ctrl + Lbutton : cancela la tarea (pone a false esa variable global)

Lo mismo tengo hecho con el botón derecho del ratón y con otras teclas.
Quizás no sea lo óptimo. No será eficiente el código, pero funciona. Claro, tengo que definir variables globales para detectar su valor en las diferentes hotkeys.

Code: Select all

SendMode Event  ; para ark

global lbuttonPulsado := false
global dandoComida := True

^RButton:: dandoComida:= False
^MButton:: lbuttonPulsado:= False

+RButton:: 
{
  dandoComida := True
  while dandoComida
  {
    Send {E down}{E Up}
    Sleep 30
  } 
  Send {E Up} ; asegurarse de soltar la tecla al final
  Return
}

+MButton::
{
  lbuttonPulsado := True
  while lbuttonPulsado
  {
    Send {LButton down}{Lbutton Up}
    Sleep 10
  } 
  Send {LButton Up}
  Return
} 
Si es para juegos, a veces no basta con pulsar una tecla, es mejor enviar los dos códigos, pulsar y soltar. Otras veces el Sendmode debe ser "event" en lugar de "Input"; A veces tienes que aumentar el Sleep para que detecte la cancelación; y si le sumas que fue uno de mis primeros scripts sin saber lo que hacía.... :D

Nucleorion
Posts: 50
Joined: 11 Dec 2016, 11:33

Re: Click sostenido de ratón

Post by Nucleorion » 28 Nov 2022, 04:08

Muy interesante el codigo, no es lo que busco pero me lo guardo para otras cosas.

Me sigo preguntando porque el codigo inicial funciona con una tecla de letra pero no con el boton de ratón.

Post Reply

Return to “Pedir Ayuda”