c#开发wps插件(2)
上一篇,我们谈了插件开发原理,现在该是应用原理的时候了。工欲善其事必先利其器,首先安装wps 2016专业版,然后再开发。
第一步:打开vs2010,新建一个类库项目,项目结构如下:
说明:其中Resource1.resx是资源文件,它包括了两张png图片一个定义ribbon的txt文件。
第二步:项目生成设置
勾选com互操作注册。
第三步:设置程序集文件
打开AssemblyInfo.cs设置ComVisible为true,如图所示:
第四步:为程序集签名
第五步:准备工作做好了,现在可以安心写代码了。
添加com引用:
kingsoft Add-In Design中定义了com组件要实现的接口。
Upgrade Kingsoft Wps 3.0 公布了wps word api。
我们再看看WPSWord2016.cs中的核心代码:
1 public void OnConnection(object Application, ext_ConnectMode ConnectMode, object AddInInst, ref Array custom) 2 { 3 app = Application; 4 Console.WriteLine("插件已连接"); 5 } 6 public void OnStartupComplete(ref Array custom) 7 { 8 Process[] processes = Process.GetProcesses(); 9 foreach (Process process in processes) 10 { 11 if (process.ProcessName.ToLower() == "wps") 12 { 13 Console.WriteLine(process.ProcessName + "进程已启动"); 14 15 wpsapp = app as Word.Application; 16 wpsapp.DocumentBeforeClose += new ApplicationEvents4_DocumentBeforeCloseEventHandler(wpsapp_DocumentBeforeClose); 17 18 break; 19 } 20 } 21 } 22 void wpsapp_DocumentBeforeClose(Document Doc, ref bool Cancel) 23 { 24 Console.WriteLine(Doc.FullName + "wps文档将要关闭"); 25 }
OnConnection的参数 Application代表了我们的应用程序,如果我们开发的是word,则代表Word.Application。
OnStartupComplete中,可以实现Application的文档相关事件,比如 DocumentBeforeClose。
第六步:生成解决方案。
com组件必须注册到注册表中,才能够使用。由于第二步的项目设置,所以这一步微软帮我们做了,接下来把插件信息写入到注册表中:
1 Windows Registry Editor Version 5.00 2 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\WpsWordAddin.WPSWord2016] 3 "FriendlyName"="WpsWordAddin" 4 "Description"="wps word示例" 5 "LoadBehavior"=dword:00000003 6 "CommandLineSafe"=dword:00000001 7 [HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL] 8 "WpsWordAddin.WPSWord2016"=""
第七步:打开wps word查看插件是否能够正确地加载。
到这一步还不太清楚的话,可以下载源码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2016-07-19 sql性能优化之多表联查