我正在尝试获取当前正在运行的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和应用程序而引起的(其中一个作为管理员,另一个作为常规用户)。