下面的AppleScript代码工作正常,请在Adium的新的聊天?使用可可ScriptingBridge
0
A
回答
0
一般来说,你应该能够做到这一点下面的苹果Scripting Bridge Programming Guide for Cocoa。首先,我通过在终端中运行sdef /Applications/Adium.app | sdp -fh --basename Adium
(在当前目录中创建Adium.h)创建了Adium的头文件。生成的头文件提供了关于通过Scripting Bridge进行AppleScript调用的线索。
我碰到的问题是,我看不到一种方式,基于生成的头文件做make new chat with contacts {...} with new chat window
(我可以做一个新的聊天,甚至可以挂钩到一个新的窗口,但我找不到一种使该聊天接触的方式)。
下一个最好的事情可能是使用NSAppleScript执行您的有效的AppleScript代码:
NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:@"tell application \"Adium\" to tell first account to make new chat with contacts {first contact} with new chat window"];
NSDictionary *errorDictionary;
NSAppleEventDescriptor *eventDescriptor = [appleScript executeAndReturnError:&errorDictionary];
0
缺少使用原始Apple事件代码,您不能。但应该与objc-appscript一起工作。通过appscript的ASTranslate工具运行你的AppleScript命令会生成以下:
#import "ADGlue/ADGlue.h"
ADApplication *adium = [ADApplication applicationWithName: @"Adium"];
ADReference *ref = [[adium accounts] at: 1];
ADMakeCommand *cmd = [[[[ref make] newChatWindow: ASTrue] withContacts: [NSArray arrayWithObject: [[[[adium accounts] at: 1] contacts] at: 1]]] new_: [ADConstant chat]];
id result = [cmd send];
+0
的objc-appscript工作正常,到目前为止,但它并不能帮助我创建一个新的聊天。我只是得到一个空的结果而没有任何反应。 – 2010-03-16 19:23:11
相关问题
- 1. 没有sdef的ScriptingBridge? (可可)
- 2. 如何使用ScriptingBridge
- 3. 使用ScriptingBridge和Objective-C
- 4. 使用ScriptingBridge打开文件
- 5. 使用ScriptingBridge框架与Entourage
- 6. AppleScripting沙盒应用程序使用ScriptingBridge
- 7. ScriptingBridge - >不能分配给属性:'self'是不可改变的
- 8. ScriptingBridge Finder POSIX路径
- 9. 使用可可的龙表操作在表中使用可可
- 10. Cocoa ScriptingBridge输入轮询
- 11. 使用ScriptingBridge和Python,我可以从当前播放的曲目中获得哪些属性?
- 12. 使用可可绘制NSImage
- 13. 可可 - 如何使用tableViewSelectionDidChange:?
- 14. 如何使用BetterAuthorizationSample? - 可可
- 15. 在可可中使用PDFs
- 16. 可可内存使用
- 17. 在可可中使用NSFontPanel
- 18. Mysql在可可中使用
- 19. 在可可中使用 - >
- 20. 在可可中使用NSThreads?
- 21. 使可可应用程序不可信
- 22. 如何使用Swift协议设置iTunes ScriptingBridge的属性
- 23. 如何让Chrome在Objective-C中使用ScriptingBridge打开URL?
- 24. 如何使用Perl中的OS-X ScriptingBridge框架关闭窗口?
- 25. 如何使用ScriptingBridge通知Safari在新窗口中打开URL?
- 26. 使用ScriptingBridge监控Keynote 6演示文稿
- 27. 在Python中使用PyObjC和ScriptingBridge发送消息
- 28. 使用ScriptingBridge时隐藏Python火箭停靠图标
- 29. 使用可变
- 30. 使用可变
“我无法找到一种方法让聊天进行联系” - 你不能。发送'make'('core' /'crel')事件在SB中部分被禁止。你可以提供一个'带有数据'参数或'带有属性'参数(但不能同时),就是这样。 SB为'new'和'at'参数做了它自己的事情,并且不允许你通过任何其他参数。大多数应用程序都依赖'with property'来提供值,但没有法律要求这样做,而Adium则不适用。正如我所说,要做到这一点,你必须使用原始的AE代码。或者使用正确说出Apple事件的AppleScript/appscript。 – has 2010-03-14 10:45:35