是否有人知道如何以编程方式启用/ Outlook 2007中禁用外的办公自动应答的实际状态?

搜索已经在VS 2008中的对象浏览器,发现枚举Microsoft.Office.Interop.Outlook.OlBusyStatus,但我没有发现任何类或其他任何使用此。

任何想法所理解的,由于和问候

有帮助吗?

解决方案

<强>更新:更新下面利用适于从此博客帖子样本代码的代码这将(使用Exchange和PST或访问多个Exchange邮箱例如那些)在更广泛的各种Outlook安装的更好地工作。

下面是它为我工作在Outlook 2007中,从外部(到Outlook)EXE设置OOF状态代码:

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作为非Administrator--否则,你可能会得到Vista的安全性相关的错误。

请注意,它会弹出安全对话框中的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制品安全加载项,如果碰上安全对话框或错误,这可能是有用的。

scroll top