3

VB.NET プログラムから Outlook を自動化し、ユーザーの要求に応じてアイテムをカレンダーと連絡先に転送しています。それは問題ではありません。問題は、Outlook をまだ開いていないときにこのように自動化すると、非表示のインスタンスが作成されることです。おそらく、これがどのように役立つか理解できます。ユーザーがまだ作業中に閉じないようにするためですが、Outlook は 1 つのインスタンスのみを強制するように見えるため、プログラムがまだ実行されている間に行われた変更をユーザーが検査しようとすると、 Outlook にフックしても、何も起こりません。1 つのインスタンスはその非表示のインスタンスであり、ユーザーは何も見ることができません。

COM オートメーションの昔は、Word や Excel を表示することができましたが、Outlook ではそれができないようです。私はもう試した:

OutlookApp.Visible = True

OutlookApp.Application.Visible = True

OutlookApp.ActiveWindow.Visible = True

OutlookApp.ActiveExplorer.Display() 

しかし、どれも機能しません。

重要ではありませんが、Outlook にメイン ウィンドウを表示させることができるかどうか知っている人はいますか? ユーザーがインスタンスを閉じることを禁止することができればボーナスポイントですが、ウィンドウを表示するだけで解決します:)

4

3 に答える 3

4

次のように作成メールを表示できます。

mailItem.Display();

それはC#コードですが、これはあなたのvbに近いと思います。

于 2013-07-04T08:14:52.097 に答える
2

通常、「Outlook」プロセスが最初に実行されているかどうかをテストします。実行されていない場合は、Outlook.exe をシェルアップしてから添付します。このようにして、隠しプロセスを取得することはありません。

シャットダウンされた見通しをキャンセルする方法は実際にはありませんが、アプリケーションの終了イベントをフックして切断し、アプリで破棄することはできます。

于 2010-05-26T16:55:22.080 に答える