如何使用AppleScript关闭所有隐藏的应用程序?
问题描述:
我已经关闭所有应用一个AppleScript:如何使用AppleScript关闭所有隐藏的应用程序?
tell application "System Events" to set quitapps to name of every application process whose visible is true and name is not "Finder"
repeat with closeall in quitapps
quit application closeall
end repeat
它工作得很好。它退出所有打开的应用程序。
我的问题是我想修改这个脚本来关闭只隐藏的应用程序。出于某种原因,苹果公司隐藏了所有苹果公司制作的应用程序,没有活动窗口,最终它开始吃掉我的内存。
什么我认为是,如果我只是改变线whose visible is true
为whose visible is false
我会得到这样的结果。
不太:
我甚至不知道这个窗口应该是的,所以我刚打取消。
好吧,它再次弹出。原来剧本炸弹爆炸之前我必须四次击中取消。
有什么办法可以退出所有隐藏的应用程序,同时打开可见的应用程序?
(奖励积分,如果你能解释一下上面弹出。)
如果它的确与众不同,我运行的是最新版本的OSX的。
答
将visible
设置为false会影响所有进程 - 即使没有GUI的进程/应用程序。如果进程不是应用程序(.app),则出现应用程序选择器。
添加支票background only
,它仅影响具有GUI的应用程序。
tell application "System Events" to set quitapps to name of every application process whose visible is true and background only is false and name is not "Finder" ...
答
如果我理解正确,你是在谈论如何当你按下红色的关闭按钮,它只是关闭应用程序的窗口,而不是应用程序本身,所以它只是离开了那里仍处于打开状态。
在这种情况下,你可以使用这个脚本我做了,现在看来,这完美的作品:
-- Get open apps
tell application "System Events" to set openApps to name of every application process whose background only is false and name is not "Finder"
-- Do this for every open app
repeat with openApp in openApps
tell application openApp
-- Tell application to quit if it doesn't have any open windows
if (count of windows) is less than or equal to 0 then quit
end tell
end repeat
答
OSX没有“隐藏”的应用程序。他们只是不活跃,或没有任何文件打开。隐藏的应用程序是Command-H通常完成的一个非常具体的过程。应用程序不会以这种方式隐藏自己。
与其试图关闭没有窗口的应用程序,不如使用文档计数来确定是否关闭应用程序。
tell application "SomeApp" if count of documents = 0 then quit
这与我所寻找的*正好相反。它会退出每个打开并且*不*隐藏的应用程序。我试图修改这个行,“其可见性是错误的,背景只是假的”,它什么也没做。将其修改为“其可见性为假并且背景为真”只需重新启动我的码头即可。他们都离开了隐藏的应用程序。 – DonielF
系统事件中的'可见'意味着'不隐藏'和'仅背景'意味着没有GUI或“不是应用程序”的无脸应用程序。只有应用程序('。应用程序)回应'退出'命令 – vadian
好吧,但这仍然没有做我想要的。 – DonielF