2009-07-08 58 views
1

我的儿子有一台MacOS 9盒,他正在基于Leopard的MacBook上向其发送远程AppleEvents。有没有什么办法,以编程方式,我可以从我的Windows 7东芝通过TCP/IP发送远程AppleEvents?从Windows发送Apple事件?

回答

2

如果有帮助,apple events are sent on port 3031 via TCP/UDP咆哮库。

从高层次,有四件对苹果事件:

  1. 数据聚集API(数据请求被放入一个不透明的内存结构)。这个API的使用很罗嗦和痛苦。谢天谢地,你必须访问具有更好的数据聚合工具语言
  2. 转换/序列化 - 不透明的数据结构变成的东西,可以被序列化并运送到另一个进程和同机的事件,这可能是一个空的序列化
  3. 将数据从一个进程传输到另一个进程。单机可能只是排队数据的副本。远程机器是通过网络协议传输的,可能是TCP/IP(但它也适用于AppleTalk),并且可能需要身份验证。
  4. 反序列化/转换

你很可能需要做的步骤2,3和4。如果你不关心获得任何信息的时候,你可以跳过4,因为在标志之一发送的事件是“无回复”。

有很多的AE数据模型类型相对小数目。我会在你的OS X机器上编写代码来发送每一种类型的数据,并在发送数据包时进行逆向工程。为了加速这个过程,你可能需要在OS X机器上使用appscript,它可以让你从Ruby,Objective C或者Python发送事件。

1

嗅出MacBook和使用类似的tcpdump或Wireshark的MacOS的9箱之间的数据包。这会告诉你AppleEvent在线路上的外观。

然后复制使用您选择的编程环境,在Windows上的数据包。

我建议结束了,你写进去,你可以在其他应用程序中重用库中的代码。

祝你好运 - 这可能相当棘手!

+0

是的,我刚刚阅读了一些有关AE记录结构的ADC文档。这将是一个有趣的旅程。 – bugmagnet 2009-07-08 12:20:42

1

如果您在谈论咆哮通知,那么有库可以使用它。例如,这里是ruby

+0

不错的想法,但是MacOS 9并没有实现咆哮,AFAICT。 – bugmagnet 2009-07-08 12:35:24