2009-07-08 64 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