Tag: 加载项

C#中的MS Word加载项TextChange事件

我有一个Microsoft Word加载项,可以在文本中找到相似的单词(但是当我单击一个按钮时!) 我的问题是:如何在用户输入单词时调用函数? 换句话说,当用户键入以获取当前单词并处理它并获得类似单词时,我想要一个像“TextChange”或“Keypress”这样的事件。 事情喜欢这个: private void TextChangeEventOfCurrentActiveDocument(object sender, System.EventArgs e) { … } 任何其他想法,我可以得到用户输入的新单词? 谢谢。

获取屏幕边缘和网页之间的距离

好的,请考虑这张图片。 I develop an IE extension in c# and I would : – the distance in red, between top of screen and top of `visible webpage` – the distance in red between left of screen and left of `visible webpage` – the width/heigth of the visible webpage 当然考虑到我有整个屏幕尺寸。 如果我有红色和黑色我可以计算绿色。 有什么意义? 我有一千个屏幕坐标(X,Y),我必须计算相对于网页的坐标。 Example : Considering Screen […]

这个插件导致前景开始缓慢

我正在使用C#.NET 4.5开发Outlook Addin项目但是在部署之后,有时outlook会禁用我的插件,并显示此消息。 “这个插件导致前景开始缓慢”“我不知道我的插件有什么问题。这只有几个代码,而且ThisAddIn_Startup在这个项目中是空的。这是代码…… public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { } protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { return new Ribbon1(); } #region VSTO generated code /// /// Required method for Designer support – do not modify /// the contents of this method […]

插件架构中的DI(Autofac):每个插件有一个单独的DI容器吗?

我试图将DI(使用Autofac )引入现有的Windows窗体应用程序。 此应用程序具有基本的插件体系结构,其中每个插件都显示其自己的表单。 在启动时,应用程序扫描已注册的程序集以查找实现IPlugin类型,然后使用Activator.CreateInstance激活它们: public interface IPlugin { Form MainForm { get; } } 我不能改变这个给定的框架。 这意味着,每个插件类都是通过非DI方式实例化的,在我看来,因此我必须为每个插件引导一个单独的DI容器。 我的问题是 ,每个插件创建一个单独的ContainerBuilder和容器OK还是合理有效吗? (将有大约10种不同的插件。)或者整个应用程序应该只有一个DI容器? 我在下面提供了一些当前解决方案的示例代码。 using Autofac; using System.Windows.Forms; public class Plugin : IPlugin // instantiated by Activator { public Form MainForm { get; private set; } public Plugin() // parameter-less constructor required by plugin framework { var builder = […]

Mac Powerpoint插件?

目前我们有一个用C#编写的DLL Windows Powerpoint插件。 反正有没有将它翻译成Mac版的Powerpoint? 显然,Mac上不存在DLL,那么还有什么选择呢? 我需要用什么编程语言编写它? 有没有办法自动转换? 谢谢

WebBrowser快捷方式无法在PowerPoint加载项中运行…但WebBrowserShortcutsEnabled为true

我正在构建一个基于嵌入式浏览器的powerpoint插件。 但是,出于某种原因,标准快捷方式不起作用。 WebBrowserShortcutsEnabled属性设置为true(尽管我甚至尝试将其设置为false,以防我处于倒退世界)。 将它剥离到裸露的骨头,我的重复步骤是: 创建一个新项目,选择PowerPoint 2013外接程序项目类型 将新的用户控件添加到项目中 将WebBrowser添加到该控件,从工具箱中拖动它 在该属性面板中将该WebBrowser上的URL设置为例如google 将此代码添加到ThisAddIn_Startup方法,以便面板立即显示: private void ThisAddIn_Startup(object sender, System.EventArgs e) { var ctrl = new UserControl1(); var ctp = this.CustomTaskPanes.Add(ctrl, “test”); ctp.Visible = true; } 在PowerPoint中键入WebBrowser工作正常,但Ctrl + X / C / V,Del,Tab等都没有效果。 我已经尝试在Web浏览器上覆盖OnKeyPress方法,并添加了一个PreviewKeyDownEventHandler,但这两种方法中的断点都没有被击中。 我还validation了WebBrowserShortcutsEnabled在运行时仍然是真的并且没有以某种方式被更改。 我开始怀疑它可能是一个环境问题,但我不知道根本原因是什么。 我正在运行Windows 8.1,VS 2012和PowerPoint 2013,目标是.NET 4.5。 我也尝试在Windows 7上的PowerPoint 2010上安装相同的基本插件,结果相同。 有没有人能够了解我可能出现的问题? 谢谢

获取Office Addin发布版本

我有一个Outlook Addin,我需要获得发布版本。 我不是指大会版本,文件版本或Office版本。 (这是我发现的全部)。 一些C#代码会很不错! 黑色XML来自项目文件。

如何在Word共享加载项中挂钩keypress事件?

我需要能够在将所有按键事件传递给Word文档之前获取它们。 我想对密钥进行特殊处理,并根据添加的模式,密钥可能会也可能不会发送到Word文档。 我只想要属于文档的按键事件,我不想挂钩弹出窗口或其他对话框的事件。 我读过一些关于智能标签的内容,但不知道它们是如何工作的。 如果我必须子类化文档窗口,我该如何获得窗口句柄?

C# – 无法调试office word加载项

这是我做的: 来自VS2010>新C#项目(来自其他项目类型>可扩展性>共享加载项)> Connect类中的一些基本配置 之后我在项目属性> debug>启动外部程序中设置了winword的路径(C:\ Program Files(x86)\ Microsoft Office \ Office12 \ WINWORD.EXE) 创建共享添加时,安装文件位于同一解决方案的单独项目中。 所以我为加载项做了一个构建,并安装了它。 当我开始单词(单独或从视觉工作室的调试开始)加载项运行正常,但它似乎无法击中任何断点? 如果我修改了某些东西并且只做了Build,当我再次启动单词时,更改就在那里,所以它必须是正在加载的单词的正确dll 问题当然是,如何让断点工作?

无法将DTE,项目或解决方案转换为VCProject和VCCodeModel

我试图通过代码获得有关c + =程序的一些信息。 我在EnvDTE上取得了一些成功,现在我需要使用VCProject和VCCodeModel,我遇到了投射问题(希望这就是全部…) 在工人阶级,我从Connect传递了DTE “application” 。 我有: EnvDTE.Project project = application.SelectedItems.Item(1).Project; EnvDTE.Solution sol = (EnvDTE.Solution)application.Solution; 我想使用“项目”,而不是解决方案中的第一个项目,就像我在网上找到的例子 – 如下所示 – 但大多数情况下,我希望有一些先行的。 对于VCProject,我尝试过(关闭Microsoft的网站,以及所有其他Web示例): VCProject vcProject = (VCProject)application.Solution.Projects.Item(1).Object; MessageBox.Show(vcProject.ProjectDirectory); 要不就 VCProject vcProject = (VCProject)project.Object; 对于VCCodeModel,我翻译为c# http : //msdn.microsoft.com/en-us/library/microsoft.visualstudio.vccodemodel.vccodeinclude.aspx : public void GetAllIncludes() { VCCodeModel vcCM = (VCCodeModel)application.Solution.Item(1).CodeModel; foreach (VCCodeInclude vcInclude in vcCM.Includes) { MessageBox.Show(vcInclude.DisplayName); } } 两者都给予例外: […]