¿Cómo simular varios clics del mouse mientras se mantiene presionado el botón del mouse?

1

Quiero que mi mouse haga clic automáticamente cuando sostengo el botón izquierdo del mouse y que se detenga tan pronto como suelte el botón izquierdo. ¿Cómo puedo hacer esto?

He buscado durante horas, ¡no encontré nada! ¿Hay posiblemente una manera de hacerlo con AppleScript? O si hay una aplicación gratuita que puede hacer esto, también está perfectamente bien.

    
pregunta Sam 17.02.2015 - 19:29

1 respuesta

1

He hecho una solución para ti. Tiene algunas piezas, podría haberme tardado una eternidad en llegar, y probablemente podría usar algo de pulido, pero está bastante cerca de lo que querías. Lo único que no puedo ver que podamos lograr es mantener presionado el mouse para hacerlo. No pude encontrar nada que nos permitiera usar el mouseup para desactivar nuestro bucle de clics, así que usé un botón de alternancia: haga clic una vez para iniciar nuestros locos clics y vuelva a hacer clic para detenerlo (usé el botón central del botón como mi iniciar y detener)

Estamos utilizando applecript, una herramienta de línea de comandos para OSX llamada MouseTools y una aplicación llamada MagicPref para asignar el script a uno de nuestros botones del mouse.

una vez que descarga y extrae MouseTools, es solo un script por lotes. Lo puse y mis manzanas dentro de la misma carpeta (nombré la carpeta superclicks ). Ahora solo necesitamos crear un bucle que haga clic en la ubicación actual del mouse y una manera de salir de ese bucle.

Aquí están las dos aplicaciones de Applecript que hacemos:

launch.app

global thisFile
set thisFile to (path to me)

global thisFolder
tell application "Finder" to set thisFolder to container of thisFile as text


# Function to check current state / should we should stop clicking
on checkstate()
local clickState
tell application "Finder"
    if exists file (thisFolder & "STOP_CLICKING.txt") then
        set clickState to false
    else if exists file (thisFolder & "CLICKING.txt") then
        set clickState to true
    else
        set clickState to null
    end if
end tell
return clickState
end checkstate

#function to update state of clicking via text files
#im sure there is a better way, but this certainly works
on togglestate()
if checkstate() is null then
    tell application "Finder" to make new file at thisFolder with properties     {name:"CLICKING.txt"}
else if checkstate() is true then
    tell application "Finder" to make new file at thisFolder with properties {name:"STOP_CLICKING.txt"}
else if checkstate() is false then
    tell application "Finder"
        delete file (thisFolder & "CLICKING.txt")
        delete file (thisFolder & "STOP_CLICKING.txt")
    end tell
end if
end togglestate


togglestate()
#we dont really want 3 states so we'll toggle again after a reset
if checkstate() is null then togglestate()

if checkstate() is true then
tell application "Finder"
    open (thisFolder & "clicking_script")
end tell
end if

clicking_script.app

global thisFile
set thisFile to (path to me)

global thisFolder
tell application "Finder" to set thisFolder to container of thisFile as text


## Function to check current state / should we should stop clicking
on checkstate()
local clickState
tell application "Finder"
    if exists file (thisFolder & "STOP_CLICKING.txt") then
        set clickState to false
    else if exists file (thisFolder & "CLICKING.txt") then
        set clickState to true
    else
        set clickState to null
    end if
end tell
return clickState
end checkstate


# let the clicking begin
on crazyClick()
set x to 0
repeat until checkstate() = false or x = 1000
    do shell script ((POSIX path of thisFolder as text) & "mousetools -leftClick")
    do shell script ((POSIX path of thisFolder as text) & "mousetools -releaseMouse")
    set x to (x + 1)
    delay 0
end repeat
end crazyClick

crazyClick()

Estos dos scripts deben guardarse como aplicaciones. Una vez que tenga esos tres elementos en su carpeta, todo lo que tiene que hacer es asignar launch.app como una aplicación personalizada que se lanzará para un clic en particular usando MagicPrefs.

Cuando activa el script, hace clic como loco hasta que lo vuelva a activar, lo que rompe el ciclo agregando algunos archivos de texto vacíos a la carpeta. Utilizamos los archivos de texto como una forma sencilla de tener variables externas.

comprimido todos los archivos para facilitar su descarga.

Puede que no sea perfecto, pero definitivamente es un buen comienzo para ver qué creatividad se puede lograr con la automatización.

    
respondido por el Eric Jones 19.02.2015 - 08:42

Lea otras preguntas en las etiquetas