首页 > 编程语言 >C#开发wps插件

C#开发wps插件

时间:2023-10-16 15:58:26浏览次数:52  
标签:插件 C# DocumentBeforeClose wpsapp wps Application com

首先安装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查看插件是否能够正确地加载

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

标签:插件,C#,DocumentBeforeClose,wpsapp,wps,Application,com
From: https://www.cnblogs.com/guangzhiruijie/p/17767503.html

相关文章

  • SQL server CONVERT()函数关于data用法
    CONVERT()函数是把日期转换为新数据类型的通用函数。CONVERT()函数可以用不同的格式显示日期/时间数据。语法:CONVERT(data_type(length),data_to_be_converted,style)       data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converte......
  • getc()、getchar()、getch() 和 getche() 的区别
    所有这些函数都从输入中读取一个字符并返回一个整数值。返回整数以容纳用于指示失败的特殊值。EOF值通常用于此目的。getc()    它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常是读取字符的ASCII值)。失败时返回EOF。    语法:intgetc(FILE*stream);......
  • 使用开源播放器VLC media player进行视频格式转换
    VLC是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及DVD、音频CD、VCD及各类流媒体协议。---摘自官网一般用它来播放视频,但其实它也可以转换视频.虽然官网没有明说,我估计转换功能是调用了大佬程序员 法布里斯•贝拉(FabriceBellard)的开源项目FFmpe......
  • 论文阅读(三)——Channel-wise Topology Refinement Graph Convolution for Skeleton-Ba
    代码实验pythonmain.py--configconfig/nturgbd-cross-subject/default.yaml--work-dirwork_dir/ntu/csub/ctrgcn--device0--num-worker0综述......
  • python create_future
      importasyncioasyncdefmain():loop=asyncio.get_running_loop()future=loop.create_future()print("Futurecreated:",future)awaitasyncio.sleep(1)future.set_result("Hello,World!")print("Resul......
  • 26个CSS超实用技巧
    1.文字溢出显示省略号单行文字:一定要设置宽度p{​•width:200px;​•overflow:hidden;text-overflow:ellipsis;white-space:nowrap;​​​}多行文字溢出显示省略号p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-l......
  • private、 protected、 public、 internal 修饰符的访问权限
    private:私有成员,在类的内部才可以访问。protected:保护成员,该类内部和继承类中可以访问。public:公共成员,完全公开,没有访问限制。internal:当前程序集内可以访问......
  • IINA Mac:免费的视频播放器
    IINAMac是一款免费的视频播放器,适用于Mac平台。它的外观和设计都遵循了现代MacOS的风格,优雅而简洁。IINAMac的开发者使用Swift编程语言进行开发,使得这款播放器拥有强大的性能和兼容性,可以流畅播放几乎所有主流的视频格式以及进行网络播放。→→↓↓载IINAMac版IINAMac不仅......
  • Perceptual Losses 风格迁移论文复现小记
    看了一篇李飞飞组的论文PerceptualLossesforReal-TimeStyleTransferandSuper-Resolution。论文地址为:https://arxiv.org/pdf/1603.08155.pdf))想去找找代码复现一下。原文没有提供代码,就只有找找别人按照论文细节实现的代码。不过但是论文是2016年的,距离现在2023年已经......
  • Vsto识别wps和office
       我们要开发wps插件了。之前用vsto开发过word插件,我也讲过c#下如何开发wps插件(有点繁琐)。如果采用c#从头再开发wps插件,那么开发出来的office加载项就会出现两个。我们要实现的wps和word插件一致的功能。office加载项如图所示:如何才能够让office和wps插件兼容呢?也就是说一......