Я пытаюсь использовать AppleScript, который будет автоматически нажимать клавишу со стрелкой вправо в течение 1 секунды, затем клавишу со стрелкой влево в течение 1 секунды и повторять это в бесконечном цикле, пока я не прерву его.
Вот что я придумал до сих пор, но это не совсем работает:
tell application "VisualBoyAdvance"
repeat 100 times
tell application "VisualBoyAdvance" to keystroke "124"
delay 1
end repeat
end tell
Вы можете повторять команды кода клавиши до тех пор, пока не изменится самое переднее приложение:
delay 1
activate application "TextEdit"
tell application "System Events"
repeat while (path to frontmost application) is (path to application "TextEdit")
repeat 3 times
key code 123
delay 0.3
end repeat
repeat 3 times
key code 124
delay 0.3
end repeat
end repeat
end tell
Более короткие задержки (в том числе 0,2 секунды) затрудняли остановку скрипта. Мне пришлось удерживать ⌥⇧⌘⎋, чтобы принудительно закрыть TextEdit.
Это переехало влево только один раз:
delay 1
tell application "System Events"
key down (character id 28)
delay 5
key up (character id 28)
end tell
Я только что провел несколько тестов: AppleScript не очень подходит для того, что вы просите, поскольку он однопоточный. Поэтому выход из цикла в такой ситуации не представляется возможным.
Вот код, который делает то, что вы хотите, но без выхода из цикла.
tell application "VisualBoyAdvance" to activate
repeat while true
set mydate to current date
repeat while ((current date) - mydate < 1)
tell application "System Events" to keystroke (key code 124) -- right
end repeat
repeat while ((current date) - mydate < 1)
tell application "System Events" to keystroke (key code 123) -- left
end repeat
end repeat
Если вы запустите его, он заморозит компьютер, отправив много событий.
без холма
Рускес
акш1т