3

MonoMac で簡単なアプリを作成しようとしていますが、さまざまなメディア プレーヤーからプレイリスト情報にアクセスするために Apple スクリプトを実行する必要があります (前の質問を参照してください)。

私は C# と .net 開発に精通しており、優れた Websocket 実装があるため、MonoMac を試してみることにしました。

残念ながら、NSAppleScript の有効なラッパーはないようです。Frederic Forjans の実装を試し、 monobjcを使用しようとしました。

Frederics ラッパー クラスは、彼のコードを使用してもコンパイルされず、次の例外が発生します。

未処理の例外: System.IO.FileNotFoundException: ファイルまたはアセンブリ 'MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。
ファイル名: 'MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'

新しいNSStringインスタンスを作成するとき。ただしnew NSDictionary();、同じアセンブリにあるものは正常に機能します。

monobjc を使用すると、次のエラーが発生します。

未処理の例外: System.TypeInitializationException: 例外がありました
Monobjc.ObjectiveCRuntime の型初期化子によってスローされます --->
System.EntryPointNotFoundException: monobjc_install_bridge
  at (ラッパーマネージドからネイティブ) Monobjc.NativeMethods:InstallBridge ()
  Monobjc.ObjectiveCRuntime..cctor () [0x00000] で:0
  --- 内部例外スタック トレースの終了 ---
  CocoaApplication1.Program.Main () [0x00000] で:0

モノラル環境でアップルスクリプトを実行するための簡単で実用的な方法を提案できる人はいますか?

4

3 に答える 3

4

Monobjc ランタイム バイナリを使用して実行しないと、Monobjc アセンブリを直接使用することはできません。Cocoa ベースまたはコンソール アプリケーションのいずれを構築する場合でも、Monobjc の Web サイトには、開始に役立つチュートリアルがあります。

アプリケーション間通信を実現する最も簡単な方法は、ScriptingBridge フレームワークを使用することです。多くのアプリケーションは、オブジェクト指向の方法で使用できるスクリプト定義を提供しています。詳細については、このガイドを参照してください。

スクリプト ブリッジは、スクリプト対応アプリケーション (iTunes、iCal、iMovie、Finder など) でのみ機能することに注意してください。

Monobjc は ScriptingBridge フレームワークをサポートしています。それを統合する方法を示す2 つのサンプル アプリケーション ( SBSetFinderCommentScriptingBridgeiCal ) もあります。

于 2011-05-04T11:15:36.507 に答える
1

可能であれば、Monobjc を使用してみてください。Monobjc は、カスタム AppleScript を実行する非常に簡単な方法を提供します。

次のコード スニペットは、主な手順を示しています。

string script = ". . . . . . . . . ."; // some applescript text
NSDictionary error = null;
NSAppleScript scr = new NSAppleScript(script);
NSAppleEventDescriptor result = scr.ExecuteAndReturnError(out error);
string retval = result.StringValue;

同じことを説明するブログ投稿を書きました。サンプルの Monobjc プロジェクトも提供されています。

于 2012-03-10T11:48:19.233 に答える
0

WinForms Mono プロジェクトから AppleScript を実行しようとしていたところ、AppleScript Slim という独自の小さな AppleScript 実行ライブラリを構築することになりました。コードの !00% は Mono Develop プロジェクトからのものです。

AppleScript スリム: https://applescriptslim.codeplex.com/

于 2012-06-02T04:16:23.427 に答える