Outlook 已加载Microsoft office验证加载项

Outlook 已加载Microsoft office验证加载项,outlook,ms-office,outlook-addin,office-addins,Outlook,Ms Office,Outlook Addin,Office Addins,我们为microsoft office开发了一个COM插件。 我们希望确保在office应用程序启动时加载外接程序(这意味着没有人试图在注册表中禁用它)。 我们当前的解决方案是,我们使用一个外部应用程序,该外接程序应该在特定时间后与之通信,从office应用程序启动的第二天算起。如果它没有通信,那么我们停止office应用程序,在注册表中验证我们应该加载,然后再次启动它。 这是一个有问题的系统,因为没有人能猜出什么是合适的等待时间,并且您不想在10分钟的工作后给用户一个错误,更不用说加载项将尽快

我们为microsoft office开发了一个COM插件。 我们希望确保在office应用程序启动时加载外接程序(这意味着没有人试图在注册表中禁用它)。 我们当前的解决方案是,我们使用一个外部应用程序,该外接程序应该在特定时间后与之通信,从office应用程序启动的第二天算起。如果它没有通信,那么我们停止office应用程序,在注册表中验证我们应该加载,然后再次启动它。 这是一个有问题的系统,因为没有人能猜出什么是合适的等待时间,并且您不想在10分钟的工作后给用户一个错误,更不用说加载项将尽快被删除对我们来说很重要


有什么想法吗?

可能是一个肮脏的解决方案,但您可以等到Outlook主窗口的标题从“打开Outlook”更改为其他内容后再使用

上面的屏幕截图是我在Outlook还在我的机器上加载时截取的一个屏幕截图

因此,也许可以轮询Outlook的进程,获取它的主窗口标题,并查看它是否包含打开。 非常脏的解决方案可能有两个缺陷:

  • 本地化Outlook可能会显示不同的消息
  • 您可能会错过开始消息,这取决于查询进程、获取主窗口和计时器间隔所需的时间
  • 我认为在“打开”消息消失后——如果没有禁用所有加载项,则应该加载它们

    可能Outlook进程的MainWindowTitle属性将是检查“打开消息”的属性。尚未尝试:

    更新: 这将有望解决Outlook在启动现有加载项之前正在执行一些数据完整性检查或类似操作的情况,但在考虑此方法的安全性之前,您确实应该进行大量测试


    希望这有帮助,让我们知道它是否有效,以便我们在需要时也可以使用它。

    如果这确实是您的“guardian”应用程序所做的,您可能需要重新考虑该方法。 1.为什么要在检查注册表之前停止office应用程序? 2.如果您的检查已通过,但加载项仍未运行,您该怎么办

    我想提出如下建议: 1.如果这对于运行外接程序非常重要,请将office应用程序快捷方式替换为您的应用程序(如果可以,例如公司环境) 2.在关闭office应用程序之前,请检查注册表,这样您就可以不用等待了 3.尝试在“guradian”应用程序中模拟office应用程序-创建实例并检查加载项是否已加载

    对于任何一种方法,这听起来都像是一种公司规则的强制执行,在这种情况下,你可以控制快捷方式和office应用程序的安装,或者是一种过于强悍的商业软件,在这种情况下,思考一下(即,这是正确的方法)