Выборочное воспроизведение / пауза VLC и iTunes с AppleScript


3

У меня 5-кнопочная мышь, и в настоящее время я использую одну кнопку для воспроизведения / приостановки музыки в iTunes (с приложением USB Overdrive). Но иногда я использую VLC (я не хочу проверять свою музыкальную библиотеку большим количеством s * it), и потому что я могу назначить AppleScript кнопкам мыши в USB Overdrive, я хочу написать скрипт, который проверяет, какая программа работает В настоящее время. Если iTunes, то он скажет воспроизведение / пауза для iTunes, но когда VLC работает, он скажет, чтобы воспроизвести / приостановить VLC.

Он работает только в Automator, но когда я сохраняю его как скрипт или приложение и запускаю в Finder, он облажается. Если VLC не работает, он откроет его. :( Почему? И почему он работает правильно в Automator?

Работает сейчас:

on run {input, parameters}
    idle
    return input
end run

on idle
    set x to isAppLoaded("VLC")
    if x then
        tell application "VLC" to play
    end if
    set x to isAppLoaded("iTunes")
    if x then
        tell application "iTunes" to playpause
    end if
end idle

on isAppLoaded(app_name)
    tell application "System Events"
        set app_list to every application process whose name is app_name
        if the (count of app_list) > 0 then
            set x to true
        else
            set x to false
        end if
    end tell
    return x
end isAppLoaded

Спасибо! miqlas


Этот код (и мой) ведут себя очень странно в Automator. Я подозреваю, что какая-то оптимизация запускает все ссылочные приложения с самого начала, но, честно говоря, я понятия не имею, почему в Automator она так себя ведет.
Даниэль Бек

Ответы:


2

Он работает для меня в редакторе AppleScript, как показано ниже, который вы можете использовать для сохранения в виде скрипта (выполнить через меню AppleScript) или приложения:

on isAppLoaded(app_name)
    tell application "System Events" to set app_list to every «class pcap» whose name is app_name
    return ((count of app_list) > 0)
end isAppLoaded

if isAppLoaded("VLC") then tell application "VLC" to play
if isAppLoaded("iTunes") then tell application "iTunes" to playpause

VLC не запускается, если он уже запущен (хотя он и запрашивает файл, если ничего не загружено). Проверено на 10.6.7.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.