这篇博客将简单介绍一些VSTO Addin开发的知识。app
1. VSTO是什么?咱们能够用VSTO作什么?学习
VSTO全称Visual Studio Tool for Office,是可让咱们针对现有的Office程序进行功能扩展。在工做或生活中其实咱们或多或少用到过VSTO插件,例如安装有道词典/Adobe Pro会在Office程序中嵌入插件程序。spa
2. VSTO开发环境的准备:插件
(1). 咱们的PC上须要安装有Office(Office 2007及以上版本);3d
(2). 以Visual Studio 2015为例,在安装时须要勾选Office Development模块。若是初始安装没有安装也不要紧,能够在控制面板中经过更改Visual Studio的方式进行安装。成功安装后,打开Visual Studio 2015-->新建工程-->选择Office Development模块:code
3. Office 开发的模板,咱们主要看(Application-Level/Template-Level)的模板,这二者的加载方式请看下面的图示:对象
打开Office解决方案的文档后,Microsoft Office 应用程序检查自定义文档属性,以肯定是否有与文档关联的托管代码扩展。blog
PS: 这二者在开发上的区别就是模板不同,别的基本没有。另一个Application-Level是针对整个Office Word/Excel/...的定制,而Template-Level是正对Word/Excel/...模板的定制。事件
4. 咱们以VSTO Word Addin为例,讲一下VSTO Word Addin Development中的核心对象。ip
private void ThisAddIn_Startup(object sender, System.EventArgs e) { Application.WindowSelectionChange += Application_WindowSelectionChange; Word.Document doc = Globals.ThisAddIn.Application.Documents.Open(@"D:\demo.docx", AddToRecentFiles: false); } /// <summary> /// WindowsSelectionChange事件 /// </summary> /// <param name="Sel">选中文本</param> private void Application_WindowSelectionChange(Word.Selection Sel) { if (Sel.Range.End - Sel.Range.Start > 10) { Word.Range range = Sel.Range; System.Diagnostics.Debug.WriteLine("Range Start Position: {0} Range End Position: {1}", range.Start, range.End); range.Bookmarks.Add("MyBookmark"); } }
运行效果: 向Word的Bookmark中插入一个Bookmark:
当咱们编译Word Addin工程时,会向注册表中写入插件的一些信息,例如Description, FriendlyName, LoadBehavior, Mantifest等,此时当咱们单独打开Word时,插件仍是会运行的。清理一下Visual Studio Word Addin工程便可。
5. 如何部署VSTO插件(以Word为例),从Visual Studio编译Word插件时,向注册表中写入的信息,咱们能够利用这些注册表信息来部署Word插件,