Applescript Ext Loop рано
Я создал цикл appleScript, который автоматизирует повторяющуюся задачу. Он запрашивает количество циклов, а затем делает свое дело.
Однако меня попросили найти способ выхода из цикла, если, например, кто-то случайно вставил слишком много циклов.
Есть ли способ, которым пользователь может выйти из цикла с помощью клавиатуры?
on run {input, parameters}
repeat input times
tell application "AvidMediaComposer" to activate
tell application "System Events"
key code 29 using command down
delay 0.2
key code 124
delay 0.2
key code 39
end tell
end repeat end run
заранее спасибо
1 ответ
Я хотел бы создать два сценария. Один для выполнения реальной работы, который следит за сигналом, который вы хотите прервать, и другой, который отправляет сигнал. Так...
Рабочий скрипт с частыми проверками сигнала ...
set abortPath to POSIX path of (path to home folder as string)
set abortFile to quoted form of (abortPath & "abort.cmd")
repeat
# Lets do wome 'work'
set r to (random number from 0.1 to 1)
delay r
set abortNow to false
try
do shell script "test -f " & abortFile
set abortNow to true
end try
if abortNow is true then
# Should remove abort.cmd here
exit repeat
end if
end repeat
Скрипт, который отправляет сигнал ...
set abortPath to POSIX path of (path to home folder as string)
set abortFile to quoted form of (abortPath & "abort.cmd")
set r to display dialog "Send signal to worker?" as text ¬
buttons {"No", "Yes"} default button ¬
"Yes" with icon stop with title "Send Signal?"
if button returned of r is "Yes" then
do shell script "touch " & abortFile
end if
Более сложный способ - использовать классный " ASObjC Runner ", чтобы показать диалог прогресса с кнопкой отмены, которую вы можете нажать, чтобы остановить цикл. Вот связанный вопрос с примером кода.