C#开发wps插件

首先安装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中的核心代码:

public void OnConnection(object Application, ext_ConnectMode ConnectMode, object AddInInst, ref Array custom)
        {
            app = Application;
            Console.WriteLine("插件已连接");
        }
        public void OnStartupComplete(ref Array custom)
        {
            Process[] processes = Process.GetProcesses();
            foreach (Process process in processes)
            {
                if (process.ProcessName.ToLower() == "wps")
                {
                    Console.WriteLine(process.ProcessName + "进程已启动");

                    wpsapp = app as Word.Application;
                    wpsapp.DocumentBeforeClose += new ApplicationEvents4_DocumentBeforeCloseEventHandler(wpsapp_DocumentBeforeClose);

                    break;
                }
            }
        }
        void wpsapp_DocumentBeforeClose(Document Doc, ref bool Cancel)
        {
            Console.WriteLine(Doc.FullName + "wps文档将要关闭");
        }

OnConnection的参数 Application代表了我们的应用程序,如果我们开发的是word,则代表Word.Application。

OnStartupComplete中,可以实现Application的文档相关事件,比如 DocumentBeforeClose。

 第六步:生成解决方案

 com组件必须注册到注册表中,才能够使用。由于第二步的项目设置,所以这一步微软帮我们做了,接下来把插件信息写入到注册表中:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\WpsWordAddin.WPSWord2016]
"FriendlyName"="WpsWordAddin"
"Description"="wps word示例"
"LoadBehavior"=dword:00000003
"CommandLineSafe"=dword:00000001
[HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL]
"WpsWordAddin.WPSWord2016"=""

第七步:打开wps word查看插件是否能够正确地加载

到这一步还不太清楚的话,可以下载源码

posted @   多见多闻  阅读(634)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示