2010-05-10 48 views
2

如何使用Objective-C(iPhone)將AppleScript發送到遠程計算機(在同一網絡上)以執行?將AppleScript發送到Objective-C中的遠程計算機

我覺得像NSNetService這裏有用,但我不知道。

編輯:好的,澄清,我想要做的就是發送一個命令ID或某事,然後計算機與相應的AppleScript命令關聯。

謝謝!

回答

1

看看SBApplication,它支持發送遠程Apple事件的eppc:遠程應用程序協議。

+0

iPhone不支持AppleScript,Scripting Bridge或任何其他Apple事件相關技術,因此無法使用。我想如果你想變得聰明,你可以通過用你自己的序列化和傳輸機制替換特定於平臺的部分(NSAppleEventDescriptor,AESendMessage)來破解objc-appscript的分佈式版本,但是我認爲如果你打算投入大量的努力,你會更好地使用諸如SOAP之類的東西來構建真正的便攜式解決方案。 – has 2010-05-11 17:40:57

1

雖然您仍然需要提供自己的傳輸機制(例如HTTPS)來傳遞數據,NSNetService允許您廣播服務的可用性。

更好的問題是:你想達到什麼目的?就個人而言,我會非常懷疑打開任何允許外部方在目標機器上運行任意代碼的服務;甚至允許外部派對發送Apple事件將是一個主要的安全問題。

如果您只是想要遠程操作iTunes或iPhoto,我會推薦實施一種服務器端服務,只公開您的iPhone客戶端實際需要的功能。

另外,如果你真的想直接從你的iPhone控制AppleScriptable應用程序,我會建議ssh進入遠程Mac並使用osascript在那裏運行AppleScripts。除此之外,這將安全責任轉移到Mac管理員和ssh上,而不是你自己。

+0

我想要做的是製作一個應用程序,可以控制目標機器上的某些應用程序來執行諸如設置您的Skype/Adium狀態,控制iTunes等一些其他的東西 – 2010-05-11 21:09:34