He hecho una solución para ti. Tiene unas cuantas piezas, puede que me haya llevado una eternidad idearlas, y probablemente se podría pulir un poco, pero se acerca bastante a lo que querías. Lo único que no veo que podamos lograr es mantener el ratón presionado para hacerlo. No pude encontrar nada que nos permitiera usar el mouseup para desactivar nuestro bucle de clics, así que usé un toggle: Haz clic una vez para iniciar nuestros clics locos, y haz clic de nuevo para detenerlo (he utilizado el botón de clic del medio como mi inicio y parada)
Estamos utilizando applescript, 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 ratón.
una vez que descargues y extraigas MouseTools, es sólo un lote script. Lo puse y mis applescripts dentro de la misma carpeta (llamé a la carpeta superclicks
). Ahora sólo tenemos que crear un bucle que haga clic en la ubicación actual del ratón, y una forma de salir de ese bucle.
Aquí están las dos aplicaciones de applescript 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 tengas esos tres elementos en tu carpeta todo lo que tienes que hacer es asignar launch.app
como una aplicación personalizada para ser lanzada para un clic particular usando MagicPrefs.
Cuando activas el script hace clic como un loco hasta que lo vuelves a activar, lo que rompe el bucle añadiendo algunos archivos de texto vacíos a la carpeta. Usamos los archivos de texto como una forma sencilla de tener variables externas.
Tengo comprimir todos los archivos para facilitar la descarga.
Puede que no sea perfecto, pero sin duda es un buen comienzo para ver qué creatividad se puede lograr con la automatización.