VSTO开发WPS插件有两种实现方式

发布时间 2023-10-24 08:47:45作者: 多见多闻

第一种是基于类库的方式,参考WPS插件开发流程(1);另一种方式是直接创建office的vsto程序,再手动改写注册表使得wps能够识别和调用。如果我们最终的应用环境就是wps,由于此时我们创建的是office外接程序,如果我们未安装相应的office版本,我们在vs启用调式功能时必然报找不到指定文件的错误。为了能让wps也识别我们的插件,我们需要手动在注册表中增加我们的插件。同时,为了能在office vsto外接程序直接调试wps,需要修改项目属性调试,设置启动操作为启动外部程度,并在里面手动选择我们安装的wps路径,如果是word就选wps.exe,excel对应et.exe等等。这样我们既利用vsto方便了我们后期插件在wps上的部署,但又不会对我们的开发过程增加过多变动和工作量。

VSTO插件供WPS使用

 private static void AddRegistertToWPS()
  {
     try
     {
         //所有插件通用
         RegistryKey key = Registry.CurrentUser;
         Dictionary<string, string> dic = new Dictionary<string, string>()
         {
             {@"Software\Microsoft\Office\Excel\Addins",@"Software\Kingsoft\Office\ET
                              \AddinsWL" },
             {@"Software\Microsoft\Office\PowerPoint\Addins",@"Software\Kingsoft\Office\W                                PP\AddinsWL" },
             {@"Software\Microsoft\Office\Word\Addins",@"Software\Kingsoft\Office\WPS
                                \AddinsWL" },
         };
         var wps = key.CreateSubKey(@"Software\Kingsoft\Office\ET\AddinsWL");
         foreach (var item in dic)
         {
             var addins = key.OpenSubKey(item.Key, true);
             foreach (var subKeyName in addins.GetSubKeyNames())
             {
                 wps.SetValue(subKeyName, subKeyName, RegistryValueKind.String);
             }
         }
     }
     catch (Exception)
     {
     }
 }

创建office vsto外接程序,开发wps插件,配置启动wps进行调试

我们目前知道创建wps的插件有两种实现方式,第一种是基于类库的方式,参考WPS插件开发流程(1);另一种方式是直接创建office的vsto程序,再手动改写注册表使得wps能够识别和调用。但是就第二种开发方式而言,如果我们最终的应用环境就是wps,由于此时我们创建的是office外接程序,如果我们未安装相应的office版本,我们在vs启用调式功能时必然报如下错误,不同电脑对应的路径不同,但是肯定是系统找不到指定的 文件错误。


并且从另一个角度讲,因为最终的应用环境是wps,我们当然希望能够直接启动wps调试,能够准确地发现插件运行中出现的bug。那如何实现创建的是office的vsto外接程序,调试时启动的却是WPS呢?
(1)修改注册表
首先打开vs2010或者更高版本,这里我们选择创建word 2007外接程序(也可以是更高版本),创建Ribbon1,并在菜单栏拖放一个按钮,用于测试。

编译项目,此时启动调试,该插件vs就已经自动帮我们写入到注册表了,因此如果在装有word 2007的系统上,就可以看到我们的插件已经正常加载到word 2007中了。

为了能让wps也识别我们的插件,我们需要手动在注册表中增加我们的插件,如图所示。

打开wps,我们的插件就已经出现在wps上了,但是如果启动调试的话,因为我们创建的office的vsto外接程序,所以此时调试默认的是启动word,如果我们电脑未安装对应版本还会报找不到文件的错误。

(2)配置启动为wps
为了能在office vsto外接程序直接调试wps,需要修改项目>属性>调试,设置启动操作为启动外部程度,并在里面手动选择我们安装的wps路径,如果是word就选wps.exe,excel对应et.exe等等。

此时在vs启动调试,发现vs自动调用wps,不再报找不到文件错误,对于wps应用插件的开发可以直接在office vsto的外接程序里调试开发啦,这样我们既利用vsto方便了我们后期插件在wps上的部署,但又不会对我们的开发过程增加过多变动和工作量。