从任何外部应用程序启动编辑器窗口时,Outlook插件不会显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从任何外部应用程序启动编辑器窗口时,Outlook插件不会显示相关的知识,希望对你有一定的参考价值。

就像我立即打开Outlook,然后点击“新电子邮件”,我看到我的插件加载在新电子邮件窗口(这就是插件应该是的位置)。但是,当我在Word / Excel中打开文档并单击文件>>单击并保存>>使用电子邮件发送>>作为附件发送。现在它确实打开了Outlook“新电子邮件窗口”,但我的插件没有加载到侧边栏中。同样,在按照“mailto:this@email.com”之类的链接打开Outlook时

关于如何实现这种行为的任何建议/指针?

编辑:我尝试了一个计时器,间隔大约14秒(仅用于测试)。计时器事件确实执行但我没有得到一个应该是MailItem的检查器。这是代码:

 private void OnTimedEvent(object sender, ElapsedEventArgs e)
        {
            diagnosticLog.Debug("In OnTimed Event!");
            InspectorWrapper wrapper;
            foreach (Outlook.Inspector item in Application.Inspectors)
            {
                diagnosticLog.Debug("In OutlookInspector Loop: " + item.ToString());
                if (item is Outlook.MailItem)
                {
                    diagnosticLog.Debug("Inspector is a MialItem: " + item.ToString());
                    diagnosticLog.Debug("In OnTimed Event!");
                    if (!inspectorWrappersValue.TryGetValue(item, out wrapper))
                    {
                        inspectorWrappersValue.Add(item, new InspectorWrapper(item));
                        diagnosticLog.Debug("new Inspector Added");
                    }
                }
            }
        }

这一行:

 foreach (Outlook.Inspector item in Application.Inspectors)

确实有一个检查员,但它永远不是一个Outlook.MailItem,因此我无法访问我应该添加我的插件的检查器。

inspectorWrappersValue是一个字典,它在InspectorWrapper的构造函数中,我初始化我的Addin UI。

 inspectorWrappersValue.Add(item, new InspectorWrapper(item));

此检查员正在由Excel打开(发送附件)

答案

您何时/何时添加自己的UI?请记住,如果使用简单MAPI或mailto链接打开检查器,则不会触发Inspectors.NewInspector事件。

以上是关于从任何外部应用程序启动编辑器窗口时,Outlook插件不会显示的主要内容,如果未能解决你的问题,请参考以下文章

从 Google Chrome 扩展程序启动外部应用程序?

如果 Outlook 关闭,则从 C# OOM 发送的电子邮件将保留在发件箱中,直到下一次 Outlook 启动

从 Qt 应用程序启动外部程序

如何启动 Outlook 处于最小化状态

启动时从应用程序轮询外部服务器

启动程序时激活窗口,如何激活一个外部程序进程并显示在最前