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.