首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Office 2007:以编程方式控制外出助手?

Office 2007:以编程方式控制外出助手?
EN

Stack Overflow用户
提问于 2009-11-05 15:56:41
回答 1查看 2.7K关注 0票数 7

有人知道如何在Outlook2007中以编程方式启用/禁用外出自动回复程序的实际状态吗?

我已经在VS2008中搜索了对象浏览器,找到了枚举Microsoft.Office.Interop.Outlook.OlBusyStatus,但我没有找到任何使用它的类或任何其他东西。

任何想法都值得欣赏,谢谢并致以敬意

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-08 02:47:43

更新:使用改编自 的示例代码更新了下面的代码,该示例代码在更广泛的Outlook安装(例如,同时使用Exchange或访问多个Exchange邮箱的安装)中将更好地工作。

下面是我在Outlook 2007上使用的代码,用于从外部(到Outlook) EXE设置OOF状态:

代码语言:javascript
代码运行次数:0
运行
复制
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对象模型。当从外部EXE访问outlook对象模型时,这是正常的。

但是,如果您从外接程序访问对象模型,则上面的代码并不完全正确:您需要从外接程序内部获取对受信任的Outlook.Application对象的引用,而不是通过构造函数创建新的Outlook.Application对象,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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 article,如果你遇到安全对话框或错误,它可能会很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1679008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档