2010-05-26 138 views
2

我从VB.NET程序自动化Outlook,根据用户的请求将项目传输到日历和联系人中。这一切都工作,这不是问题;问题是,当它尚未打开时,像这样自动化Outlook会创建一个隐藏的实例。我也许可以理解这可能是有用的,在你还在使用它时停止用户关闭它,但是由于Outlook似乎只强制一个实例,如果用户试图检查在我的程序仍然进行时所做的更改迷上了Outlook,没有任何反应 - 一个例子就是隐藏的实例和用户看不到任何东西。COM互操作和Outlook - 使Outlook可见?

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

OutlookApp.Visible =真

OutlookApp.Application.Visible =真

OutlookApp.ActiveWindow.Visible =真

OutlookApp.ActiveExplorer.Display()

但他们都没有工作。

这并不重要,但有谁知道我是否可以让Outlook显示其主窗口?奖金分,如果我可以让它禁止用户关闭实例,但我会解决只是显示窗口:)

回答

2

我normaly测试,看看“Outlook”过程是否先运行,如果不是然后壳起Outlook.exe然后附加。这样你永远不应该得到一个隐藏的过程。

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

+0

嗯,我打算说“我明白,但依靠知道Outlook的路径和文件名......”。现在,我终于明白,我们*知道 - 注册表会告诉我们如何提供“Outlook.Application”。非常感谢 - 很高兴现在我回到了这个答案。 – JTeagle 2010-06-02 17:20:16

3

你可以展示你喜欢这个创建邮件:

mailItem.Display(); 

这是C#代码,但我认为,这不过是接近你的VB。