問題タブ [outlook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
csv - PSTからCSVへのファイル変換
コマンド ラインを使用して .pst ファイルを .csv ファイルに変換する優れたツールを知っている人はいますか?
com - 2 つのインスペクター参照が同じインスペクター インスタンスを指していることを確実に伝えるにはどうすればよいですか?
[ 2 つの COM インターフェイス参照が同じインスタンスを指しているかどうかを確認する方法はありますか?からの続き ]
2 つの異なるソースからオブジェクトへの参照を取得してInspector
おり、一方のソースのアイテムが他方のソースのアイテムに対応するかどうかを判断できる必要があります。ただし、これまでに思いついたアプローチはどれも(確実に)機能しませんでした。
メソッドがインスペクターインスタンス自体ではなく、オンザフライで作成されたプロキシオブジェクトへの参照を返しているように見えるため、インターフェイスを単純に比較することはできませんでした。
IUnknown
Inspectors.Item()
試してみてください: 同じインデックスに 2 回アクセスすると、2 つの明確に異なるポインターが返されます。比べる
Inspector.CurrentItem.EntryID
のもダメ。新しい/保存されていないアイテムEntryID
は常に空白であり、一度に複数の保存されていないアイテムが開かれている可能性があります。Inspector.Caption
またはInspector.CurrentItem.Subject
同様にあいまいです。一時的
Inspector.CurrentItem.Subject
に(または実際には他の項目プロパティを)明確な値に設定してから、他のリストの種類でそれを探しますが、インスペクターで項目を「ダーティ」としてマークするという厄介な副作用があります。つまり、インスペクターを閉じるときに再度、ユーザーはアイテムを保存するように求められます (受信したメールを表示していた場合でも)。
他のアイデアはありますか?
環境:
Inspectors.NewInspector
Simple MAPI (エクスプローラーのコンテキスト メニューの [送信先] > [メール受信者] など) を介して開始された新しい電子メール メッセージがイベントを生成しないというよく知られたバグ/機能を回避しようとしています。インスペクタ (例: ツールバー ボタンの追加またはメッセージ作成時のコードの実行)。私の COM アドインには、イベントをキャッチするラッパー オブジェクトの内部リストがありますInspector
。Inspectors.NewInspector
およびInspector.Close
イベントを監視することで、このリストに項目が追加および削除されます。
別のアプローチとして、私はシェル フックを使用しています。新しいインスペクター ウィンドウが作成または破棄されるたびに通知を受け取ることができるようになったので、そこに飛び込んでラッパー オブジェクトの内部リストをApplication.Inspectors
コレクションと一致させるのに適しているようです。それに応じて、新しいラッパー オブジェクトまたは孤立したラッパー オブジェクトを追加または削除します。
outlook - 見通しのマークダウン
ウィキが認められるような会社ではないので、アウトルックでのコミュニケーションが多いです。それを介してコードスニペットを送信するのは苦痛です。ここにあるマークダウンを取得する方法はありますか?
outlook - Outlook(2003) msgfile 拡張子のレジストリ値は何を表していますか?
拡張子が .msg の msg 電子メール ファイルを開く場合、Outlook 2003 がいくつかのパラメータで起動されます。したがって、次のレジストリ キーを見つけることができます。
最初のものは、パラメーター /f "%1" で "outlook.exe" を指しています。これにより、Outlook が起動し、メールを開くための情報が表示されます。ただし、「コマンド」キーには次の値があります。
これが何に適しているのか、誰か教えてもらえますか?
これらのキーを変更する必要がある vsto Outlook アドインを作成しています。「標準」キーを変更した場合、変更したキーを使用しなくても Outlook は正常に起動します。「command」キーも変更すると、Outlook が起動しなくなります。
「コマンド」キーを削除した場合にのみ、すべてが正常に機能します。しかし、鍵が何に役立つかを知らなければ、これは解決策にはなりません。
html - HTML リンクからのスライスを繰り返して拡張できない
テンプレートとして保存するために、HTML 画像を電子メール (Outlook) に挿入しようとしました。繰り返す必要があるスライスが正しく機能していないことがわかりました (テキストの終わりまで色を拡張するため)。この件で私を助けてくれる人はいますか?以下は私が使用しているコーディングです。
c# - UserProperties コレクションが空なのはなぜですか?
Outlook 2003 PIA と VS 2005 を使用して、パブリック フォルダー内のアイテムにアクセスしています。アイテムにいくつかのitem.UserProperties
ユーザー定義フィールドがあるにもかかわらず、コレクションは常に空に戻ります。
を使用してコードにプロパティを追加するUserProperties.Add
と、アイテムと共に正しく保存され、次にアイテムにアクセスしたときに UserProperties で使用できるようになります。ただし、MFCMapi
アイテムにアクセスするために使用すると、この新しいプロパティと既存のユーザー定義のプロパティに違いはありません。
何かご意見は?
ありがとう。
asp.net - 既存のOutlookカレンダーにインポートする複数のVEVENTを含む.ICSファイルを作成する方法
複数の会議日があるイベントをユーザーがダウンロードできるようにする必要があります。これを行うために、ダウンロードするメモリストリームを作成しました。これにより、.icsファイルが生成されます。例えば:
このファイルにVEVENTを1つだけ含めると、既存のOutlookカレンダーに保存されます。ただし、複数のVEVENTがある場合は、新しいカレンダーとして開き、[その他のカレンダー]の下にファイルします。
(ファイル-Outlook内からインポートを使用せずに)カレンダーを開いたときに既存のカレンダーに自動的にインポートするように指定する方法はありますか?
更新:明確にするために、各VEVENTは単一の「予定」に関連しています。ただし、繰り返しパターンがある場合とない場合があります。
-マイク
.net - COM 相互運用アセンブリの読み込みシーケンス
Outlook アドインで発生する非常に奇妙なアセンブリ参照の問題と読み込みの問題があります。詳細は次のとおりです(長い話:)):
.Net 1.1 を使用して記述およびビルドされた古い Outlook アドインがあります。アドインは、独自のアプリケーション ドメインで管理されていない shim を使用して読み込まれます。ユーザーのマシンに 1.1 が存在しなくても、.Net 2.0 で問題なく動作します。
このアドインは、Outlook 2000 に対して VS 2003 によって作成されたカスタム Outlook 相互運用機能アセンブリを使用し、その後再構築して厳密な名前を付けます (私のアドインのように)。
アドイン プロジェクトでは、このカスタム相互運用アセンブリのみを参照し、公式の MS 相互運用アセンブリへの参照はありません。
このアドインを Outlook 2007 と .Net 2.0 の環境で使用すると、公式の MS 相互運用機能アセンブリが GAC にインストールされているため、何らかの理由で、アドインがそれらを読み込んで使用することがわかります。
Connect クラスのコードには、using ディレクティブがあります。
これは、カスタム相互運用アセンブリの名前空間です。
Connect ctor には、次のコード行があります (テスト目的で追加されました)。
これは以下を出力します:
Outlook.Application の完全な種類: Outlook.ApplicationClass、Interop.Outlook、Version=9.0.0.0、Culture=neutral、PublicKeyToken=4cfbdc5349cf59d8
これはまさに私が期待したものです。
問題は、OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) が呼び出されると、ログに表示されることです (現在のドメインの AssemblyLoad イベントへのフックがあります)。アセンブリもロードされます:
出力:
アセンブリ Microsoft.Office.Interop.Outlook、Version=12.0.0.0、Culture=neutral、PublicKeyToken=71e9bce111e9429c のロード元: GAC
私の OnConnection メソッドは次のように始まります。
これは以下を出力します:
OnConnection アプリケーション オブジェクトの完全な型は、Microsoft.Office.Interop.Outlook.ApplicationClass、Microsoft.Office.Interop.Outlook、Version=12.0.0.0、Culture=neutral、PublicKeyToken=71e9bce111e9429c です。
次の行で Outlook.Application に問題なくキャストできることがわかるので、これは非常に奇妙です。
Reflector で確認しましたが、アセンブリは Microsoft の相互運用アセンブリをまったく参照していません。私の Interop.Outlook.dll についても同じです。
それで、誰かが何が起こっているのか知っていますか?これらの質問に対する答えは何ですか:
Microsoft アセンブリをロードするのはなぜですか?
異なるアセンブリで定義された、無関係なクラス/インターフェイス間でキャストするにはどうすればよいですか?
注: 新しいアドインを作成しました。これは非常に単純なもので、何もせず、ロードするだけです。私は問題を再現できたので、CLRがどの相互運用機能をどこからロードするかをどのように決定するかを知っている人はいますか? GAC以外に、COMオブジェクトとそれが必要とする相互運用の間にリンクがある別の場所(レジストリ???)はありますか?
c++ - 受信トレイではなく、メッセージの通知領域に Outlook アイコンを表示する
一部の電子メール メッセージを別のフォルダーに移動するようにルールを設定しています。通知領域にエンベロープを引き続き表示したいのですが、ルール ウィザードにはこれを行うためのオプションがありません。それぞれ vba または c/c++ を許可する「スクリプトを実行する」または「カスタム アクションを実行する」というルールを設定する必要があるようです。
他の誰かがより良い解決策を持っていますか?
outlook - 会議用 Outlook VSTO アドイン
Outlook 会議用の VSTO アドインを作成しました。
この一環として、イベントSendEvent
のメッセージをトラップします。FormRegionShowing
次に、メソッド_apptEvents_Send
はいくつかのプロパティをテストし、必要に応じて終了します。
私たちが抱えている問題は、一部のユーザーのメッセージが 2 回送信されることです。1 回目は会議の送信時、2 回目はユーザーが Outlook を再度開いたときです。
何かが適切に破棄されていない可能性があると考えて、メモリ リークを探し、リソースが管理されていることを確認するためにすべての最終呼び出しに明示的なオブジェクト破棄を追加しましたが、それでも組織全体で一貫性のない機能を取得しています。つまり、開発中に問題に遭遇したことはなく、テスト中に他の開発者も遭遇しませんでした。すべてのユーザーは、フレームワーク (3.5 SP1) と Outlook の修正プログラムを最新の状態にしています。
これを引き起こしている可能性のあるものについて何か考えがある人はいますか?
誰もが持っているかもしれないアイデアは大歓迎です。