需要Applescript重复每x秒

时间:2012-09-18 18:31:08

标签: osx-lion applescript

到目前为止,这是我的脚本:

property timeDelay : 5

on appOpen(appName)
    tell application "System Events" to set appNameIsRunning to exists (processes where name is appName)
    return appNameIsRunning
end appOpen

if appOpen("iChat") then
    tell application "iChat"
        repeat with theService in services
            if connection status of theService = disconnected or connection status of theService = disconnecting then
                log in of service (name of theService)
            end if
        end repeat
    end tell
end if

基本上,如果您的任何iChat / Messages帐户被注销,它会检查一次。如果是,请将它们登录。它有效。

但是,我希望这是一个'保持开放'的应用程序。在过去,我使用了模式

on idle
    -- do stuff
end idle

..但由于某种原因,当我尝试编译时它出错了。

the error I'm getting 知道为什么会这样吗?

编辑:

好的 - 仍然不确定为什么会这样,但我能够通过简单地创建一个新脚本来解决问题。我不知道为什么会出现这个错误,但现在看起来很好。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

这没有意义......

tell application "System Events" to set appNameIsRunning to exists (processes where name is appName)

你想要这个......

tell application "System Events" to set appNameIsRunning to exists process appName

原因是“名称为appName的进程”将返回一个列表(无论是一个项目还是多个项目仍然是列表),检查列表的“存在”是没有意义的。

我不确定错误,但我希望能解决您的问题。

答案 1 :(得分:0)

这适用于我10.6.8

property timeDelay : 5

on appOpen(appName)
    tell application "System Events" to set appNameIsRunning to exists process appName
    return appNameIsRunning
end appOpen

on idle
    if appOpen("iChat") then
        tell application "iChat"
            repeat with theService in services
                if connection status of theService = disconnected or connection status of theService = disconnecting then
                    tell service (name of theService) to log in
                end if
            end repeat
        end tell
    end if
    return timeDelay
end idle