代码之家  ›  专栏  ›  技术社区  ›  Atmocreations

Office 2007:程序化控制外出助理?

  •  7
  • Atmocreations  · 技术社区  · 16 年前

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

    Microsoft.Office.Interop.Outlook.OlBusyStatus

    任何想法都很感激,谢谢和问候

    1 回复  |  直到 16 年前
        1
  •  3
  •   Justin Grant    16 年前

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

    以下是我在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,否则您可能会在Vista上遇到与安全相关的错误。

    请注意,它将在Outlook中弹出安全对话框,以确保用户同意您访问Outlook对象模型。当从外部EXE访问outlook对象模型时,这是正常的。

    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

    推荐文章