【问题标题】:can a code written for outlook 2010 work with outlook 2003为outlook 2010编写的代码可以与outlook 2003一起使用吗
【发布时间】:2014-02-23 08:04:40
【问题描述】:

我们有一个为 outlook 2010 编写的代码。

当我们在使用 outlook 2003 的计算机上运行它时,会出现错误。

我们正在尝试使用 Outlook.namespace GetSelectNamesDialog 函数解析用户名

安装outlook 2003时出现以下异常:

异常信息:System.accessviolationexception。

堆栈:

在 Microsoft.Office.Interop.Outlook._NameSpace.GetSelectNamesDialog()

我们的代码有什么方法可以同时适用于 20102003

目前,它仅适用于 Outlook 2010。

【问题讨论】:

  • 如果您使用了 Outlook 2010 在 2003 中不可用的功能,您可能无法运行它。但提供更多细节、细节、代码、错误消息
  • 您为 Outlook 使用了哪些互操作库?
  • 我正在使用 microsoft.office.interop.outlook pia/office12。异常信息:system.accessviolationexception。当我尝试按 ctrl+k 添加用户时,它会出现。
  • 我们正在尝试使用 outlook.namespace GetSelectNamesDialog 解析用户名,安装 Outlook 2003 时出现以下异常:accessviolationexception。我该怎么办?

标签: c# outlook outlook-2010 outlook-2003


【解决方案1】:

您可以实现 2 个类。 一个用于 2010 年,另一个用于 2003 年。 用 3 个功能制作 OutlookExchange 的接口:发送、解析和关闭。 这 2 个类将从 OutlookExchange 继承。 您需要在下一个链接How to detect installed version of MS-Office? 中检查您的计算机中安装的 Outlook 版本是什么 ,并根据版本使用类:

public static OutlookCreator()

{


Microsoft.Office.Interop.Word.Application appVer = new Microsoft.Office.Interop.Word.Application();

string[] _appVer=appVer.Split('.');

int version=Int32.Parse(_appVer[0]);

OutlookExchange exchange=null;

//outlook 2003

if(version==11)

   exchange=new Outlook2003();

//outlook 2007 and newer

if(version>11)

   exchange=new Outlook2010();

return exchange

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2012-03-18
    • 2011-08-17
    • 2018-03-07
    • 2017-06-27
    • 2014-08-02
    相关资源
    最近更新 更多