首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CreateOleObject('Outlook.Application')在作为管理员运行时会导致“服务器执行失败”错误

使用CreateOleObject('Outlook.Application')在作为管理员运行时会导致“服务器执行失败”错误
EN

Stack Overflow用户
提问于 2015-03-30 05:21:36
回答 1查看 3.4K关注 0票数 0

这是一个Delphi XE2应用程序。很简单。只需调用CreateOleObject('Outlook.Application')并将结果分配给一个变体。

如果该程序以管理员身份运行,它会失败,而“服务器执行失败”,但它工作良好,如果我作为登录用户运行(没有提升的权限),我可以获得版本号。

为什么会这样呢?作为管理员运行阻止它创建对象的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-30 05:47:06

此错误是由于安全上下文之间的不匹配造成的。Outlook是单例的,因此CreateOleObject将连接到正在运行的Outlook实例(如果可用的话)。COM系统拒绝对具有不同安全上下文的进程之间的调用进行封送。

要么在调用CreateOleObject时确保Outlook没有运行,要么确保两个进程在相同的安全上下文中运行。

您还可以切换到扩展的MAPI (它是直接或通过包装器使用的一组加载在-proc中的dll)(比如赎罪 (我是它的作者)--它的RDO对象族大致对应于Outlook中的Namespace对象。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29338902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档