Вы хотите избегать использования чего-то вроде repeat
l oop, так как это заблокирует пользовательский интерфейс приложения (для выхода или просто для того, чтобы избежать вращающегося колеса смерти). Относительно простой способ повторить подобные вещи - создать приложение, оставшееся открытым, и поместить свой повторяющийся код в обработчик idle
, который использует таймер, например:
on idle
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "DBeaver" is in activeApp then
tell application "System Events" to keystroke "r" using {command down, shift down}
end if
end tell
return 60 -- do it again in 60 seconds
end
. обработчик idle
запускается, когда приложение бездействует; возвращаемое значение определяет количество секунд до повторного запуска обработчика.