我有 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 上测试。