VSTO AddIn仅适用于Word

时间:2009-01-08 16:44:06

标签: ms-word vsto

我为Word 2003编写了一个正常工作的VSTO插件。唯一的问题是插件显示一个命令栏,当我在Outlook中创建新电子邮件时,该命令栏也会出现。如何防止命令栏插件在Outlook的上下文中显示并仅在Word中显示?

4 个答案:

答案 0 :(得分:2)

您的问题是Outlook使用Word作为电子邮件的编辑器。

您可以从Outlook中的“工具选项邮件格式”中关闭它,或者您可能需要进行检测,例如Document.Kind属性,如果是电子邮件,则其值为wdDocumentEmail(= 2)

答案 1 :(得分:1)

我没试过这个,但是你可以使用Word实例的Parent属性来确定它的父是否是Outlook,在这种情况下不显示命令栏吗?

答案 2 :(得分:0)

父属性只是循环回Microsoft Word,而不是循环回Outlook。我最终导入User32.dll并获取Windows名称,然后检查是否包含Microsoft Word。

我仍然遇到的唯一问题是,如果用户打开Outlook,创建新邮件,然后打开Word,WINWORD.exe进程仍然具有我假设的默认模板,因此新的复制词不会显示我的插件。

答案 3 :(得分:0)

Word中有几个属性可以让您检测它是否作为邮件编辑器运行。

App.MailEnvelope App.Envelope App.Email

所有返回电子邮件相关信息。我相信如果没有将word用作电子邮件编辑器,其中至少有一个会返回NOTHING,但我不再能够访问该代码,所以如果不尝试它就无法确定。

那就是说,我知道甚至MS建议不要使用Word作为电子邮件编辑器。在Office 2007和2010中,我不相信这甚至是一个选项。