gpt4 book ai didi

c# - 最小化运行 Outlook 时无法创建 CommandBar(Outlook 2007 加载项)

转载 作者:行者123 更新时间:2023-11-30 21:24:43 26 4
gpt4 key购买 nike

原帖:
启动 Outlook 时,加载项会加载并添加一个带有一些按钮的工具栏。

toolBar = OutlookApp.ActiveExplorer().CommandBars.Add(MENU_TAG, MsoBarPosition.msoBarTop, false, true);

一切正常,但现在一位用户将他的 Outlook 快捷方式设置为最小化启动 Outlook。

然后 OutlookApp.ActiveExplorer() 返回 null。当有 ActiveExplorer 并添加命令栏时,是否有一些事件我可以用来捕捉?

OutlookApp.Explorers.NewExplorer 不工作。

此外,当我在添加 CommandBar 之前显示一个消息框时:一切正常,即使 Outlook 最小化也是如此......为什么?

编辑:
正如有人在答案中所说,直接访问 Explorers 属性确实有效。所以这解决了最小化前景的问题......但是......

其中一个用户没有将 Outlook 最小化运行,并且插件仍然在任何 gui 可用之前加载。 Explorers 集合中甚至没有 1 个 Explorer :( 这怎么可能?

编辑 2:
我尝试按照 76mel 的建议使用计时器,每 100 毫秒检查 ActiveExplorer 是否为空。这会按预期添加按钮,但我可以设置按钮的图片属性。

我得到这个异常:
灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))

最佳答案

如果没有 UI = 没有资源管理器 :(

尝试等到 Explorers.NewExplorer 事件触发才能获取 CommandBars 对象。

更新:是的,它看起来像一个计时器会做这个技巧,但有点 hacky。因此,当您有一个空的 ActiveExplorer 并检查 ActiveExplorer onTick 时,连接一个计时器。一旦用户弹出 outlook,您将获得事件的资源管理器,然后您可以添加工具栏。

关于c# - 最小化运行 Outlook 时无法创建 CommandBar(Outlook 2007 加载项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com