我们正在为Microsoft Word开发一个COM加载项(仅限本地,而不是云用途)。我们的一位客户遇到了问题,每次他启动Word时,他都必须手动激活加载项(Word选项>加载项> Go ...>勾选相应加载项的复选框) 。我可以通过强制导致Word崩溃的加载项编码中的错误来重现此行为。下次启动Word时,我收到以下消息:
我当然多次看过这个消息。但是:当时点击“是”的结果是加载项已被禁用。在这种情况下,重新启用它一次就足够了(如上所述)。下次启动加载项时,您不必再启用它了。
但是现在,除了禁用加载项之外,还创建了一个注册表项。该密钥具有加载项的名称,位于以下路径:HKEY_CURRENT_USER / SOFTWARE / Microsoft / Office / 15.0 / Word / AddInLoadTimes。
似乎这个键导致了开头描述的行为。因为如果我删除密钥,启动Word,启用加载项,关闭单词,将注册表中的“LoadBehavior”键设置为“3”,然后重新启动单词,一切都很好。
现在我的问题是:是否有一个用户友好的替代方案来启用加载项?由于我们最少的用户拥有管理权限,我们不能要求他们更改某些注册表项以解决问题。
我希望有人能帮助我。
祝你好运
蒂莫
答案 0 :(得分:0)
我们为避免此问题而采取的路径是检查代码中的任何静态初始化方法/属性(当单词尝试激活插件时调用),这可能可能抛出异常( IO 工作, REST api请求...等)并添加 try / catch 博客并附上一些通知对于用户来说,激活插件失败+记录异常。
旁注:当我们遇到同样的问题时,除了您提到的解决此行为的注册表项之外,我们找不到任何其他内容,但我们遇到了相同的安全限制,所以这个不是一种选择。
答案 1 :(得分:0)
我不太了解你的加载项,我可以想到两种可能性:
由于注册表项位于HKCU(通常相当容易访问),为什么不创建第二个帮助程序加载项'检查此密钥的问题并在需要时重置它?
否则您可以使用Inno Setup创建一个虚拟安装程序来为您执行此操作吗?
我认为这是可能的,因为您的目标位置是HKEY_CURRENT_USER/SOFTWARE/Microsoft/Office/15.0/Word/AddInLoadTimes
(即HKCU
),通常可以在没有管理员权限的情况下进行修改:Changing registry without admin rights
答案 2 :(得分:0)