Создание AppleScript для глобальных сочетаний клавиш

#macos #applescript #keyboard-shortcuts #nsapplescript

#macos #эпплскрипт #сочетания клавиш #nsapplescript

Вопрос:

Я создаю AppleScript для своего Mac, который будет указывать Spotify пропустить или вернуться к треку на основе сочетаний клавиш. Я считаю, что у меня правильный код, но я не могу заставить скрипт работать должным образом и думаю, что это может быть связано с позиционированием операторов if-then .

Любые советы о том, что я могу сделать, чтобы это сработало?

 tell application "Spotify"
    activate

if keystroke "e" using {command down, option down, control down} then 

tell application "Spotify"
    next track

end if
end tell

if keystroke "r" using {command down, option down, control down} then

tell application "Spotify"
    previous track

end if
end tell
 

Комментарии:

1.RE: «Я считаю, что у меня правильный код, но я не могу заставить скрипт работать должным образом и думаю, что это может быть связано с расположением операторов if-then». — У меня нет Spotify, поэтому я не могу вам помочь ни с чем конкретным. Однако ваши if утверждения ничего не делают, и они даже не являются действительными утверждениями, поскольку они не предоставляют никакого механизма для определения того, произошло ли событие нажатия клавиши! Кроме того, как написано, ваш код AppleScript даже не компилируется и, следовательно, даже не может быть выполнен.

2. Разве Spotify уже не предоставляет сочетания клавиш для этих действий?

3. После небольшого поиска в Google, Spotify работает с мультимедийными клавишами на Mac , так чего же вы на самом деле пытаетесь достичь здесь, чего вы не можете с помощью мультимедийных клавиш ?

4. Спасибо, что дали мне знать, @user3439894! Я довольно новичок в написании кода и AppleScript, поэтому инструкции недопустимы. Что мне нужно сделать, чтобы сделать их действительными утверждениями? Я пытаюсь использовать сочетание клавиш для управления Spotify, а не клавишами мультимедиа. Чтобы это произошло, Spotify должен быть в центре внимания, поэтому я пытаюсь создать скрипт, который предотвращает это.

Ответ №1:

По моему опыту, обнаружение нажатий клавиш в AppleScript немного сложно, поэтому я рекомендую вам:

1) Напишите и протестируйте отдельные сценарии для каждого нажатия ярлыка. Это был бы один сценарий для:

 tell application "Spotify"
    next track
end tell
 

…и один для:

 tell application "Spotify"
    previous track
end tell
 

2) Откройте Automator и создайте новое Быстрое действие (вы сделаете это дважды). Установите его так, чтобы Рабочий процесс не получал «никаких входных данных» в «любом приложении». Это будет работать, когда Spotify не находится в фокусе. Если вы выберете Spotify, он будет работать только тогда, когда Spotify находится в фокусе.

Затем в левой части найдите Действия для «Запустить AppleScript», затем перетащите его вправо. Вставьте код из шага 1 в соответствии с запросом. Сохраните с полезным именем, например «Следующий трек Spotify».

3) Перейдите в раздел Системные настройки-> Клавиатура-> Ярлыки-> Службы и прокрутите вниз до выпадающего списка «Общие», где вы можете назначить ярлык для каждого быстрого действия (требуется клавиша-модификатор, поэтому «e» не будет работать, но cmd e будет).

Обратите внимание, что ваше приложение in-focus попросит Spotify сменить треки. Я тестировал с Chrome в фокусе, и это сработало после того, как я дал разрешение (это происходит только в первый раз).