COM Interop和Outlook - 让Outlook可见?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了COM Interop和Outlook - 让Outlook可见?相关的知识,希望对你有一定的参考价值。

我正在从VB.NET程序自动化Outlook,根据用户的请求将项目转移到日历和联系人。一切正常,这不是问题;问题是,当Outlook尚未打开时自动执行此操作会创建一个隐藏的实例。我或许可以理解这可能有用,在你还在使用它时阻止用户关闭它,但是因为Outlook似乎只强制一个实例,如果用户试图检查我的程序仍在进行时所做的更改连接到Outlook,没有任何反应 - 一个实例是隐藏的实例,用户看不到任何东西。

在COM自动化的旧时代,我曾经能够使Word或Excel可见,但我似乎无法用Outlook做到这一点。我试过了:

OutlookApp.Visible = True

OutlookApp.Application.Visible = True

OutlookApp.ActiveWindow.Visible = True

OutlookApp.ActiveExplorer.Display() 

但它们都不起作用。

这不是关键,但有人知道我是否可以让Outlook显示其主窗口?奖励积分,如果我可以让它禁止用户关闭实例,但我会满足于只显示窗口:)

答案

我通常测试看看“Outlook”进程是否首先运行,如果没有,然后shell启动Outlook.exe然后附加。这样你永远不会得到一个隐藏的过程。

实际上没有办法取消关闭Outlook,你可以挂钩应用程序退出事件来断开连接并在你的应用程序中处置。

另一答案

您可以像这样显示您的创建邮件:

mailItem.Display();

它是c#代码,但我想,这可能接近你的vb。

以上是关于COM Interop和Outlook - 让Outlook可见?的主要内容,如果未能解决你的问题,请参考以下文章

Outlook.Interop Items.Find()似乎不匹配正确

VB.NET - Microsoft.Office.Interop.Outlook - 工作站锁定时不起作用?

[转]C#操作Outlook

获取 Outlook 日历邮件

powershell Afficher la liste des dossiers outlook ou trouver le chemin d'accèsd'nun dos

Exchange 2013迁移SOP手册