2013-02-18 90 views
1

因此,我正在写一个基本的applescript结束一个非常烦人的程序,随机打开并打断我,而我的工作。该计划需要留下,但我不想看到它。我想让我的脚本在计算机重新启动时自动打开(我在设置中执行了此操作)。我想测试,以确保它的工作原理,但作为一个应用程序保存后,我不能注销或关闭或重新启动,无需手动强制退出。我认为这是因为重复循环,但我不知道如何解决这个问题。我试过了我能想到的一切。任何帮助将不胜感激。谢谢无限循环在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 
+1

如果有LiveUpdate的一个的plist在'{〜,} /库/启动{守护程序,代理}',尝试将其删除。 – user495470 2013-02-18 19:23:13

回答

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 

注意“闲置”处理程序。这是应用程序保持打开状态时重复运行的处理程序。请注意,我已经在该处理程序的末尾放置了“return 10”。这决定了空闲处理程序运行的频率,在这种情况下每10秒钟一次。你可以改变你想要的。

此方法的优点是您可以退出此保持打开的应用程序。您不会陷入无法退出的重复循环。

您提到您不想在运行时看到此应用程序。要做到这一点,你将不得不修改应用程序包内的info.plist文件(右键单击应用程序并显示包内容)。您必须将“LSUIElement”键添加到plist并赋予其值true。然后在运行时您不会在Dock中看到应用程序。

因为你看不到它正在运行,你将需要一些方法来退出应用程序。你可以使用另一个applescript ...

tell application "My Stay Open Application" to quit. 

或者你可以打开活动监视器并从那里退出它。祝你好运。

1

这里是另一种方法:

on idle 
if application "LiveUpdate" is running then tell application "LiveUpdate" to quit 
return 10 
end idle