我正在尝试获取当前正在运行的Outlook版本,或者在未运行的情况下启动Outlook,但是在Windows 7中获取或创建Outlook Application对象时遇到一些问题。我认为它有事情要做在Vista和7中受到限制的用户特权。我正在使用Outlook 2010。

编辑:这些错误仅在我已经启动Outlook 2010实例的情况下出现。如果未启动Outlook,则应用程序可以平稳运行(它可以自行启动Outlook实例)。

如果有人可以告诉我如何正确获取Outlook Application版本,那将非常有帮助。

我正在运行的代码是一个很长的try-catch块,它会不断触发异常:


try
{
  // create an application instance of Outlook
  oApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch(System.Exception ex)
{
  try
  {
     // get Outlook in another way
     oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
  }
  catch (System.Exception ex2)
  {
     // try some other way to get the object
     oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;
  }
}

该应用程序引发以下异常:

当我尝试创建新的Outlook应用程序实例时:



当我尝试获取Outlook应用实例时:



当我尝试通过激活器创建实例时



谢谢!

最佳答案

显然,这些错误是由于我在不同的用户权限级别上运行Outlook和应用程序而引起的(其中一个作为管理员,另一个作为常规用户)。

09-11 19:22
查看更多