Outlook 2007 で不在時の自動応答の実際の状態をプログラムで有効/無効にする方法を知っている人はいますか?
VS 2008 で既にオブジェクト ブラウザを検索して列挙を見つけましたMicrosoft.Office.Interop.Outlook.OlBusyStatus
が、これを使用するクラスやその他のものは見つかりませんでした。
どんなアイデアでも大歓迎です、ありがとう、そしてよろしく
Outlook 2007 で不在時の自動応答の実際の状態をプログラムで有効/無効にする方法を知っている人はいますか?
VS 2008 で既にオブジェクト ブラウザを検索して列挙を見つけましたMicrosoft.Office.Interop.Outlook.OlBusyStatus
が、これを使用するクラスやその他のものは見つかりませんでした。
どんなアイデアでも大歓迎です、ありがとう、そしてよろしく
更新:このブログ投稿から適用されたサンプル コードを使用して、以下のコードを更新しました。これは、さまざまな Outlook インストール (Exchange と PST の両方を使用するもの、または複数の Exchange メールボックスにアクセスするものなど) でより適切に機能します。
外部の(Outlookへの)EXEからOOFステータスを設定するために、Outlook 2007で私のために働いたコードは次のとおりです。
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace ns = app.Session;
foreach (Microsoft.Office.Interop.Outlook.Store store in ns.Stores)
{
if (store.ExchangeStoreType == Microsoft.Office.Interop.Outlook.OlExchangeStoreType.olPrimaryExchangeMailbox)
{
store.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B", true); // false to turn off OOF
break;
}
}
そのコードを管理者として実行し、outlook を非管理者として実行していないことを確認してください。そうしないと、Vista でセキュリティ関連のエラーが発生する可能性があります。
Outlook オブジェクト モデルにアクセスしてもユーザーが問題ないことを確認するために、Outlook 内でセキュリティ ダイアログがポップアップ表示されることに注意してください。Outlook オブジェクト モデルが外部 EXE からアクセスされる場合、これは正常です。
ただし、アドインからオブジェクト モデルにアクセスしている場合、上記のコードは完全には正しくありません。コンストラクターを介して新しい Outlook.Application オブジェクトを作成する代わりに、信頼できる Outlook への参照を取得する必要があります。次のように、アドイン内から .Application オブジェクトを取得します。
Microsoft.Office.Interop.Outlook.NameSpace ns = this.Application.Session;
foreach (Microsoft.Office.Interop.Outlook.Store store in ns.Stores)
{
if (store.ExchangeStoreType == Microsoft.Office.Interop.Outlook.OlExchangeStoreType.olPrimaryExchangeMailbox)
{
store.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B", true); // false to turn off OOF
break;
}
}
ところで、アドインのセキュリティに関する優れたMSDN 記事があります。これは、セキュリティ ダイアログやエラーが発生した場合に役立つ場合があります。