Есть ли способ или стороннее приложение, которое позволило бы мне указать, например, что я хочу, чтобы оно отправляло событие клавиатуры (чтобы оно имело тот же эффект, что и физическое нажатие клавиши на клавиатуре) каждые 5 секунд?
Так, например, я мог бы сказать, чтобы он попадал Kкаждые 5 секунд, всего 15 раз?
В принципе, я ищу что-то вроде AutoHotkey , но для OS X.
Вот AppleScript, чтобы делать то, что вы хотите:
set i to 0
repeat while i < 15
set i to i + 1
delay 5
tell application "System Events" to keystroke "k"
end repeat
Вы можете встроить его в сценарий оболочки следующим образом:
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
(Спасибо @houbysoft за echo "script" | osacript
синтаксис!)
Я нашел способ сделать это в сценарии 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
Сохранить как hitkey
, chmod +x hitkey
, hitkey k
чтобы нажать K.
Оттуда можно просто использовать Automator, чтобы несколько раз перебрать сценарий или сделать сигнал тревоги iCal, чтобы запустить сценарий в определенное время.
echo "script" | osascript
синтаксисе — я всегда использовал osascript -e "script"
. Таким образом, вы получаете +1 за это.Вот мой тип рабочего процесса
в командной строке введите Ctrl + x, затем Ctrl + e, чтобы войти в Vim, и введите там.
введите ниже ; видите, обратной косой черты нет.
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
затем сохраните vim и выйдите из команды, если вы знаете, как выйти из vim;)
Вернитесь к терминалу, чтобы запустить набранное выше.
+++ О, еще одна вещь.
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
вместе с here-doc кажется излишним (вам не нужна эта cat
часть).cat
», регулярно раздававшихся comp.unix.shell
в старые добрые времена юзнета!
Адам_Г