私は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
これは、次のような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でテスト済み。