我为Word 2003编写了一个正常工作的VSTO插件。唯一的问题是插件显示一个命令栏,当我在Outlook中创建新电子邮件时,该命令栏也会出现。如何防止命令栏插件在Outlook的上下文中显示并仅在Word中显示?
答案 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中,我不相信这甚至是一个选项。