2

Outlook 会議用の VSTO アドインを作成しました。

この一環として、イベントSendEventのメッセージをトラップします。FormRegionShowing

_apptEvents.Send += new Microsoft.Office.Interop.Outlook.ItemEvents_SendEventHandler(_apptEvents_Send);

次に、メソッド_apptEvents_Sendはいくつかのプロパティをテストし、必要に応じて終了します。

private void _apptEvents_Send(ref bool Cancel)
{
    if (!_Qualified)
    {
        MessageBox.Show("Meeting has not been qualified", "Not Qualified Meeting", MessageBoxButtons.OK, MessageBoxIcon.Information);
        chkQualified.Focus();
        Cancel = true;
    }
}

私たちが抱えている問題は、一部のユーザーのメッセージが 2 回送信されることです。1 回目は会議の送信時、2 回目はユーザーが Outlook を再度開いたときです。

何かが適切に破棄されていない可能性があると考えて、メモリ リークを探し、リソースが管理されていることを確認するためにすべての最終呼び出しに明示的なオブジェクト破棄を追加しましたが、それでも組織全体で一貫性のない機能を取得しています。つまり、開発中に問題に遭遇したことはなく、テスト中に他の開発者も遭遇しませんでした。すべてのユーザーは、フレームワーク (3.5 SP1) と Outlook の修正プログラムを最新の状態にしています。

これを引き起こしている可能性のあるものについて何か考えがある人はいますか?

誰もが持っているかもしれないアイデアは大歓迎です。

4

3 に答える 3

0

私はプロではありませんが、過去にOutlookの自動化を行うときに、人々のメール送信設定が原因で問題が発生しました。

たとえば、送受信サイクルを強制した場合にのみメールが送信されます。ただし、ほとんどの人はすぐに送信する見通しを持っており、誰かが最初に本当に単純な自動化スクリプトを要求したとき、頭痛の種を覚えています。

これがすべての開発者に共通するものであり、ユーザーの設定が異なる可能性があるかどうかを確認してください。

于 2008-12-12T14:27:48.507 に答える
0

Microsoft.Office.Interop.Outlook.ApplicationEvents_10.Send Event指定されたハンドラーを何度も追加する代わりに、なぜ使用するのですか。

vsto アドオンの起動方法で、以下を追加するだけです:

((MSOutlook.ApplicationEvents_10_Event)_OutlookApp).ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_10_ItemSendEventHandler(Utils_ItemSend);

void Utils_ItemSend(object Item, ref bool Cancel)
{
    //Do your operation here.
}
于 2008-12-15T16:11:37.073 に答える