¿Hay alguna forma o una aplicación de terceros que me permita especificar, por ejemplo, que quiero que envíe un evento de teclado (para que tenga el mismo efecto que presionar físicamente la tecla en el teclado) cada 5 segundos?
Entonces, por ejemplo, ¿podría decirle que golpee Kcada 5 segundos, 15 veces en total?
Básicamente, estoy buscando algo como AutoHotkey pero para OS X.
Aquí hay un AppleScript para hacer lo que quieras:
set i to 0
repeat while i < 15
set i to i + 1
delay 5
tell application "System Events" to keystroke "k"
end repeat
Puede alinearlo en un script de shell como este:
echo "set i to 0
repeat while i < 15
set i to i + 1
delay 5
tell application \"System Events\" to keystroke \"k\"
end repeat" | osascript
(¡Gracias a @houbysoft por la echo "script" | osacript
sintaxis!)
Encontré una manera de hacer esto en un script bash:
#!/bin/sh
# Simulates hitting a key on OS X
# http://apple.stackexchange.com/a/63899/72339
echo "tell application \"System Events\" to keystroke \"$1\"" | osascript
Guardar como hitkey
, para golpear chmod +x hitkey
.hitkey k
K
A partir de ahí, es fácil usar Automator para repetir el script varias veces o hacer una alarma de iCal para iniciar el script en un momento específico.
echo "script" | osascript
sintaxis, siempre he usado osascript -e "script"
. Entonces obtienes +1 por eso.Aquí está mi tipo de flujo de trabajo
en la línea de comando, escriba Ctrl + x, luego Ctrl + e para ingresar a Vim y escriba allí.
escriba a continuación; ves que no hay barra invertida.
cat << EOF | osascript
set repeat_number to 5
set i to 1
repeat while i <= repeat_number
tell application "System Events" to keystroke "k"
display notification "repeat keystroke " & i & "time"
set i to i + 1
delay 1
end repeat
EOF
luego guarde vim y salga del comando, supongamos que sabe cómo salir en vim;)
Volver a la terminal para ejecutar lo escrito arriba.
+++ Ah, una cosa más.
cat | osascript
display alert "typeing like Script Editor, no need to type backslash!"
display notification "type ctrl + d to end typing and run it."
cat
junto con un here-doc parece ser un poco excesivo (no necesita la cat
parte).cat
", entregados regularmente comp.unix.shell
en los viejos tiempos de Usenet.
adam_g