使用 AppleScript 选择性播放/暂停 VLC 和 iTunes

使用 AppleScript 选择性播放/暂停 VLC 和 iTunes

我有 5 键鼠标,目前使用一个按钮来播放/暂停 iTunes 中的音乐(使用 USB Overdrive 应用程序)。但有时我会使用 VLC(我不想用很多东西弄乱我的音乐库),而且因为我可以将 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

答案1

它在 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 上测试。

相关内容