我正在编写一个脚本,每次联系人登录到Adium时都会启动该脚本。 我的目标是在某些朋友登录时显示咆哮消息。 一切正常,但我不知道如何从刚登录的联系人那里获得“显示名称”。
以下是代码:
告诉应用程序“Adium”
#Get the alias of the contact that just signed on:
get display name of contact #most recently signed in (HOW DO I RESPRESENT THIS)
#Jon
if display name of contact is "Jon" then
tell application "GrowlHelperApp"
-- Make a list of all notification types:
set the allNotificationsList to ¬
{"Jon"}
-- Make a list of the default enabled notifications:
set the enabledNotificationsList to ¬
{"Jon"}
-- Register the script with Growl
register as application ¬
"AdiumFriends" all notifications allNotificationsList ¬
default notifications enabledNotificationsList ¬
icon of application "AdiumFriends"
-- Send a notification:
notify with name ¬
"Jon" title ¬
"Jon signed on" description ¬
¬
"Facebook" application name "AdiumFriends"
end tell
end if
告诉
答案 0 :(得分:1)
但是你可以在联系人登录后启动脚本。该脚本可以检查名称,如果它与你想要的匹配,它会给你一个喊叫
答案 1 :(得分:0)
当有人登录时,似乎没有事件要插入。实际上,Adium根本没有暴露给appleScript的事件。如果您现在需要此功能,则可能必须维护成员列表 - 已登录,然后定期轮询。如果出现新的缺口,那就是咆哮的那个。这不是太难,但定期轮询需要一个可以在后台运行的appleScript应用程序,以及一个空闲的事件,这不是你想听到的,我相信。
抱歉没有更好的消息,但这是appleScript的一个相当典型的问题:你受第三方应用程序开发人员的支配,在词典中包含有用的东西。他们经常没有,但只是感谢有一本字典!
稍微好一点的消息是:Adium和Growl都有appleScript词典,两者都是开源的。 (Adium是GPL,Growl是BSD)。这意味着您有可能影响开发人员为Adium实现一些事件处理程序,但也有可能无法指定截止日期。您是否尝试加入Adium开发人员论坛?