0

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

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

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

我得到的错误 知道为什么会发生这种情况吗?

编辑:

好的 - 仍然不确定为什么会发生这种情况,但我可以通过简单地制作一个新脚本来解决这个问题。我不知道为什么会出现这个错误,但现在看起来很好。谢谢你们的帮助。

4

2 回答 2

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
于 2012-09-18T20:28:38.963 回答
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 的进程”将返回一个列表(无论它有一个项目还是多个项目,它仍然是一个列表)并且检查列表的“存在”是没有意义的。

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

于 2012-09-18T19:03:34.993 回答