1

所以我正在编写一个基本的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
4

2 回答 2

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.

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

于 2013-02-18T21:04:13.030 回答
1

这是另一种方法:

on idle
if application "LiveUpdate" is running then tell application "LiveUpdate" to quit
return 10
end idle
于 2013-02-19T04:13:23.093 回答