所以我正在编写一个基本的AppleScript来结束一个非常恼人的程序,它随机打开并在我工作时打断我。该计划需要留下,但我不想看到它。我希望我的脚本在计算机重启时自动打开(我在设置中执行此操作)。我想测试以确保它可以工作,但在将其保存为应用程序时,我无法注销或关闭或重新启动而无需手动强制退出。我认为这是因为重复循环,但我不知道如何解决这个问题。我已经尝试了我能想到的一切。任何帮助将不胜感激。谢谢
on appIsRunning(appName)
tell application "System Events" to (name of processes) contains appName
end appIsRunning
repeat
if appIsRunning("LiveUpdate") then
tell application "LiveUpdate"
quit
end tell
end repeat
答案 0 :(得分:2)
我也不确定你是否有正确的方法。但是,如果您想要执行您要执行的操作,那么您需要创建一个保持打开的应用程序。您可以通过将applescript保存为应用程序并选中“在运行处理程序后保持打开”复选框来执行此操作。以下是你为此编写代码的方法......
on idle
if appIsRunning("LiveUpdate") then tell application "LiveUpdate" to quit
return 10
end idle
on appIsRunning(appName)
tell application "System Events" to (name of processes) contains appName
end appIsRunning
注意“on idle”处理程序。这是在应用程序保持打开状态时重复运行的处理程序。请注意,我在该处理程序的末尾放置了“return 10”。这决定了空闲处理程序运行的频率,在这种情况下每10秒运行一次。您可以将其更改为您想要的内容。
此方法的优点是您可以退出此保持打开的应用程序。你不会陷入无法戒掉的重复循环中。
您提到您不希望在运行时看到此应用程序。要实现这一点,您必须修改应用程序包中的info.plist文件(右键单击应用程序并显示包内容)。您必须将“LSUIElement”键添加到plist并为其赋值true。然后,当它运行时,您将无法在Dock中看到该应用程序。
因为您无法看到它正在运行,所以您需要一些方法来退出该应用程序。你可以使用另一个AppleScript ...
tell application "My Stay Open Application" to quit.
或者您可以打开活动监视器并从那里退出。祝你好运。
答案 1 :(得分:1)
这是另一种方法:
on idle
if application "LiveUpdate" is running then tell application "LiveUpdate" to quit
return 10
end idle