问题标签 [addin-express]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30 浏览

visual-studio - 如何使用 add in express 获取 IE 的当前 URL

我正在使用 add-in express 为 IE 开发插件。我需要一种方法来在这个开发环境中获取 IE 的当前 url。有没有人知道这件事?请帮我。

0 投票
1 回答
1531 浏览

c# - Outlook 禁用 VSTO 插件,抱怨加载时间

我开发的插件有一个非常奇怪的问题。

客户抱怨加载项由于加载时间慢而被 Outlook 禁用,但在我的代码中(avrg 为 1.2 秒),除了 AddIn Express 生成的代码(如下所示)之外,我没有在启动期间运行任何其他自定义代码。

另外,我有一个已加载的功能区功能区(按钮)。

插件的所有功能代码(例如登录、Web 服务调用)仅在单击功能区按钮打开 Outlook 时执行。

是否有任何潜在的问题我可能已经过去或可能与我的代码无关的外部原因,当所有发生的只是在 Outlook 启动期间加载的功能区时,Outlook 会抱怨我的插件启动缓慢?

0 投票
0 回答
188 浏览

vsto - Office 365 加载项功能区栏按钮已禁用

为了隔离问题,我创建了一个空的加载项快速项目(Outlook 和 VSTO 的区域),如下所示:

  • 展望 2013/2016 vsto 项目
  • 为 Outlook 和 VSTO 添加了 adx 区域
  • 资源管理器布局:taskpanedock.right
  • 资源管理器项目类型:选中 MailItem
  • 没有选择检查员(只是资源管理器)

单击新邮件 - 所有已安装的 Office 365 加载项功能区栏按钮均已禁用(即,evernote、findtime 等)

使用连接到 Office 365 帐户的 Outlook 2016 进行测试

0 投票
1 回答
125 浏览

.net - Outlook 从 Addin 拥有的 WPF 中窃取空格键

我有一个 Outlook 插件(Office 2013),其主要作用是打开一个包含 WebBrowser 的 WPF 窗口,该窗口嵌入了特定的业务 Web 应用程序。我已经解决了 WPF WebBrowser 没有收到特定击键(如 enter、delete、ctrl+c、ctrl-v 等)的几个问题。然而,这已通过此处描述的方法成功处理:https ://blogs.msdn.microsoft.com/ vsod/2010/04/08/using-shortcut-keys-to-call-a-function-in-an-office-add-in/

这些问题至少是一致的。我面临的最后一个与空格键有关。一般来说,空格的处理方式与其他字母数字键类似,并且不需要拦截。然而,这并非在所有情况下都是正确的。每当用户将 Outlook 重点放在特定的电子邮件上(通过重点我并不是指在导航窗格中选择电子邮件,而是单击右侧主窗格中的电子邮件正文),然后 Outlook 使用空格键作为导航快捷方式。这样用户就可以浏览电子邮件内容并切换到下一封电子邮件。

当用户关注右窗格后会出现问题,打开我的 Addin WPF 窗口并使用 HTML 框提供包含空格的文本。在那种状态下,Outlook 仍在下方的 Outlook Explorer 中导航,“窃取”空格键,即使 WPF 窗口是活动的,而不是 Outlook Explorer。这意味着 Web App 永远不会收到空间。只有当用户从当前电子邮件“失去焦点”时,即使单击导航窗格中当前显示的电子邮件,Outlook 似乎也会释放对空格键的所有权,并且它会再次按预期工作。

我看到该问题的 2 个潜在解决方案:

  1. 每当激活 Addin WPF 窗口时,强制 Outlook 资源管理器从右主窗格中当前显示的电子邮件中释放焦点。我还没有找到实现它的方法。

  2. 拦截空间并触发预定义的javascript方法注入空间。然而这很棘手,因为在空格键正常工作的情况下,我的插件会收到 2 个空格 - 一个是通过简单地接收空格键命中,第二个是通过注入。

任何想法如何解决这个问题?

干杯

0 投票
1 回答
195 浏览

.net - 将 NGen 与 Wix 工具集一起用于 AddIn Express Excel 插件

我想提高使用 AddIn Express 开发的 .NET Excel 插件的首次运行性能。

插件在第一次执行各种任务期间运行缓慢的原因是因为 JIT 花费时间将 MSIL 转换为本机可执行机器代码。

解决此问题的标准方法是从安装程序在您的程序集上运行 NGen 以预生成本机代码。

我为我的安装程序使用了 Wix 工具集,并尝试正确设置,但我仍然没有摆脱缓慢的初始执行问题,所以我想知道是否需要做一些特定的事情来让它与 Addin Express Excel 一起工作插件。我的插件会安装到 %LocalAppData% 文件夹中,以防万一该信息很重要。

我按照这里的指南:http: //wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/ngen_managed_assemblies.html http://wixtoolset.org/documentation/manual/v3/xsd/netfx/nativeimage.html

在我的 Wix xml 中有这样的东西:

我的安装程序构建良好并且安装良好,但初始执行缓慢的问题并没有消失,这让我相信它仍在使用 JIT。我最初的想法是我可能需要指定 AssemblyApplication 属性,但我尝试将其设置为各种 AddinExpress dll(adxloader64.dll、adxloader.dll、AddinExpress.XL.2005.dll、AddinExpress.MSO.2005.dll)没有成功。任何帮助将不胜感激。

0 投票
0 回答
787 浏览

visual-studio - 无论如何都无法注册 Outlook 加载项

我一直在开发 Outlook 加载项,工作和安装都很好。然后我尝试安装同一个插件的一个非常旧的版本(试图验证一些旧的行为,旧的插件是用于 Outlook 2010 的),它以某种方式弄乱了安装/卸载过程。从那时起,Office Outlook 2016/365 就无法再注册/查看加载项了。

我尝试了以下方法:

  • 卸载并重新安装 Outlook
  • 删除与加载项相关的所有注册表项(我从字面上搜索加载项的关键字并删除了数百个我什至不知道的剩余条目)
  • 已删除 c:\Users\user\AppData\Local\Microsoft\Office
  • 已删除 c:\Users\user\AppData\Roaming\Microsoft\Office
  • 已删除 c:\Users\user\AppData\Roaming\MyAddIn
  • 冉CCleaner
  • 运行 RegDllView 扫描所有注册的 DLL,它说C:\WINDOWS\system32\mscoree.dll “丢失”?但是有没有...
  • 在重新编译整个项目之前尝试卸载并重新安装 Add-in Express。

如果我尝试在 Microsoft Outlook 中手动添加插件,选项 > 插件 > 管理 > 添加,如果我将它指向MyAddIn.dll,它会说它不是有效的 COM 插件(但没有任何改变在项目中有关如何构建 dll 的信息)。如果我将它指向adxloader.dll并点击 OK,它不会抱怨,但加载项下也没有任何显示。

我的下一个选择是完全重新安装 Windows,这让我发疯。有经历过这种精神错乱的人能给我一些指示吗?

操作系统:Windows 10

办公室:Office 365 展望

0 投票
3 回答
1223 浏览

c# - 如何可靠地知道当前(焦点)前景窗口中的对象。即资源管理器类型或检查器类型

我们正在使用加载项快速区域,该区域加载在 Outlook 的右侧。在该表单区域中,我们有一个用户控件,MyContainer. 这又包含两个控件。

MyContainer中,我们需要决定每个子控件的可见性。

涉及ActiveInspector和的方法ActiveExplorer不可靠。

例子

在主资源管理器窗口中打开多个撰写窗口,我碰巧在资源管理器视图之间切换,它们是;已发送、发件箱等。我仍然找到资源管理器和检查器对象。

我需要一种好方法来确保加载我的区域或 MyContainer 控件的窗口是撰写/读取或主资源管理器(收件箱/发送/草稿/发件箱)。

我尝试了很多事情,但没有成功。

任何指示或建议都会非常有帮助。

0 投票
0 回答
37 浏览

messagebox - C# - 消息框不显示在编译的应用程序中,在调试器中工作

我有一个 Windows 窗体应用程序,它使用 Add-in Express 作为 Outlook 的加载项。我插入了一些调试代码,它们会抛出带有状态报告的消息框,当我在 Visual Studio 中调试或在我自己的机器上安装应用程序时,这工作正常。

我的 BA 正在尝试测试该应用程序,但当她安装它时,没有显示任何消息框。

我一直在探索的几条路线:

  1. 她的机器上没有安装 Visual Studio。也许安装中缺少一些东西?

  2. 消息框是在实用程序类中调用的,因此即使我引用了 Windows.Forms,我还是在网上看到了这可能会出现问题的提示。

我很欣赏任何想法。谢谢。

[编辑]

刚刚尝试在没有安装 Visual Studio 的 VM 上安装,消息框看起来很好,所以它不是上面的 #1。

0 投票
3 回答
726 浏览

c# - 如何关闭内联响应

我想关闭当前的内联响应来做一些行为。

我试过这个功能:OutlookApp.ActiveExplorer().ClearSelection()但它不能在对话视图下工作并引发异常:

您调用的方法对对话视图无效

那么,关闭内联响应的正确方法是什么?

0 投票
1 回答
218 浏览

c# - 在 Excel 中获取已删除的范围

这是我试图通过 Excel 插件实现的目标。Excel 用户选择一个范围并将其删除。我想将该范围内的单元格数据(无论他删除什么)写入日志文件。关于 SO 的多个问题说您无法在 SheetChange 事件处理程序中删除范围,您需要存储它。我将范围存储LastRange在选择更改事件方法处理程序的全局变量中。我需要LastRange在 SheetChange 事件处理程序中。

问题是我得到 COM 异常——

无法使用已与其底层 RCW 分离的 COM 对象。

我知道某个地方LastRange正在被释放,因此是例外。我在这里提到了另一个 SO 问题。即使我对委托有很强的引用,问题仍然存在。

不知道为什么LastRange在 Method1 中仍然为空。LastRange从 SheetChange 正确传递到Method1(). 有什么其他的想法可以让这个工作吗?