1

私の質問の動機は、ScriptingBridge を使用して mail.app を統合する方法を説明している次のドキュメントです。

http://developer.apple.com/mac/library/samplecode/SBSendEmail/Introduction/Intro.html

Entourage にも同様の手法を適用しようとしましたが、これまでのところ結果が得られませんでした。私は、AppleScript を使用すると問題を解決できることを理解しており、mactech.com にはそのための広範なドキュメントがあります。

しかし、私はこの ScriptingBridge 手法が洗練されていると感じており、Entourage でうまくいかない理由を理解したいと思っています。

最大の問題は、ヘッダーが示すように、Entourage は Mail とは異なるインターフェイスを持っているため、Mail で発生するように名前に基づいて Scripting クラスを作成できないことです。

誰かが私に欠けているものを教えてください。または、これがうまくいかない理由について何らかのヒントを提供してもらえますか?

サンプルコードも追加しています

`

MicrosoftEntourageApplication * mail = [SBApplication
applicationWithBundleIdentifier:@"com.Microsoft.Entourage"];
MicrosoftEntourageOutgoingEmailMessage * emailMessage = 
[[[mail classForScriptingClass:@"outgoing message"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
@"my sample subject", @"subject",
@"my sample body", @"content",
nil]];

//then i create a set of recipients and try to use "to recipient" as the string scripting class id, but MicrosoftEntourageRecipient is returned as nil 

MicrosoftEntourageRecipient * theRecipient =
[[[mail classForScriptingClass:@"to recipient"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
@"johndoe@adobe.com", @"address",
nil]];

`

私は単純なことを機能させようとしていますが、今すべき仕事に集中していません。

私は Cocoa の初心者です (そして学びたいと思っています)、質問に答えるだけでなく、構文の素朴さを許し、サンプル コードでそれらを指摘してください。

よろしくお願いします、

サブラマニアン

4

1 に答える 1

1

いくつかのこと:

  1. 行き詰まっている場合は、まず AppleScript でそれを行う方法を見つけてください。これは、ほとんどのアプリケーション スクリプターが使用するものであり (つまり、あなたを助けることができる人々)、ほとんどすべてのドキュメントが書かれているものです。現実的には、多くのアプリケーション スクリプトを実行したい場合は、実際に AppleScript を学ぶ必要があります (Python や Ruby などから Cocoa を使用するために ObjC を少し習得する必要があるのと同じように)。

  2. Scripting Bridge は扱いにくく、難読化されており、アプリケーションの互換性の問題が発生しやすいため、動作中の AppleScript コードをそれに変換することは、ターゲットとするアプリケーションや使用するコマンドなどによっては、不可能ではないにしても難しい場合があります。記憶によると、Entourage はつまずくアプリの 1 つだと思います。その場合、生の Apple イベント コードを使用しない限り、運が悪いでしょう。その他のオプションとして、このような問題が発生しにくいobjc-appscript (m'baby) や、AppleScript から直接 ObjC クラスを呼び出すことができる AppleScriptObjC (10.6+) があります。

  3. CSMailを見たことがありますか?

  4. Office 2010 では Entourage が廃止され、Outlook が使用されるようになるため、SB コードの記述方法を理解するために多大な時間を費やしたくない場合があります。

于 2010-06-01T18:09:52.720 に答える