web-dev-qa-db-ja.com

AppleScriptを使用した選択的な再生/一時停止VLCおよびiTunes

私は5ボタンのマウスを持っていますが、現在iTunesで音楽を再生/一時停止するために1つのボタンを使用しています(USBオーバードライブアプリを使用)。しかし、時々私はVLCを使用しています(音楽ライブラリをたくさんのs * itで作成したくない)、そしてUSBオーバードライブのマウスボタンにAppleScriptを割り当てることができるので、実行中のプログラムをチェックするスクリプトを書きたいです現在。 iTunesの場合、iTunesに再生/一時停止を通知しますが、VLCを実行すると、VLCに再生/一時停止を通知します。

Automatorでのみ動作しますが、スクリプトまたはアプリとして保存してFinderで起動すると、失敗しました。 VLCが実行されていない場合は、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

3
miqlas

これは、次のようなAppleScript Editorで機能します。これを使用して、スクリプト(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でテスト済み。

2
Daniel Beck