我正在使用我认为在Windows 7 x64 PC上进行Outlook 2007自动化的非常标准做法。
我调用GetObject(,“Outlook.Application”),如果这引发了异常,那么我调用CreateObject(“Outlook.Application”)。
问题是CreateObject(“Outlook.Application”)现在引发了“无法创建ActiveX组件”。异常但Outlook在任务管理器中作为进程启动。我可以在它之后用“-Embedding”看到它,我理解这对于共同创作是正常的。
一旦运行,GetObject(,“Outlook.Application”)仍然会失败,但CreateObject(“Outlook.Application”)却不会。
这意味着我的黑客会......
GetObject(,“Outlook.Application”), 捕获异常, 的CreateObject( “Outlook.Application”), 捕获异常, 的CreateObject( “Outlook.Application”), 我们选择自动化。
有没有其他人经历过这个,或者还有其他我应该检查的事情。
答案 0 :(得分:0)
看起来你的windows regisrty键有问题。如果以下注册表项丢失或不完整,则会发生此行为:
HKEY_CLASSES_ROOT\Outlook.Application
HKEY_CLASSES_ROOT\Interface\{000C0339-0000-0000-C000-000000000046}
注意,在具有32位版本的Office和64位版本的Windows的计算机上,上面的密钥路径是:
HKEY_CLASSES_ROOT\Wow6432Node\Interface\{000C0339-0000-0000-C000-000000000046}
有关详细信息,请参阅Missing registry information can cause problems with the Outlook object model。
答案 1 :(得分:0)
解决方案是在“管理员”特权下运行Visual Studio IDE。 只需将桌面上“属性”下“ IDE图标”中的安全设置更改为“ Adminstrator”,然后重新启动IDE。
答案 2 :(得分:0)
请勿将GetObject与Outlook一起使用-它是单例,因此CreateObject将返回指向正在运行的实例的指针。