首页 > 其他分享 >VSTO开发WPS插件有两种实现方式

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

时间:2023-10-24 09:03:07浏览次数:27  
标签:插件 外接 office 调试 wps VSTO WPS vsto

第一种是基于类库的方式,参考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上的部署,但又不会对我们的开发过程增加过多变动和工作量。

标签:插件,外接,office,调试,wps,VSTO,WPS,vsto
From: https://www.cnblogs.com/guangzhiruijie/p/17783926.html

相关文章

  • Jenkins安装使用MSBuild插件
    JenkinsMSBuild插件页面:https://plugins.jenkins.io/msbuild/1.安装首页系统管理》插件管理》Availableplugins搜索:MSBuild安装时勾选:重启Jenkins 2.配置MSBuild路径首页系统管理》全局工具配置》MSBuild安装Name:随便命名Path:注意这里要用VS对应的MSBuild版本,如VS......
  • wps对接报错
     NoAuthPrivilege是没有授权,解决:https://openapi.wps.cn/view/company/authorize?app_id=AK20231021OGLXQL&scope=corp_contacts.read,corp_contacts.write,corp_contacts.user_phone.read,contact_access_control,corp_contacts.user_email.read,corp_group,corp_normal_g......
  • Vscode中的python代码规范插件
    有几个流行的VSCode插件可以帮助你在Python开发中遵循代码规范。以下是其中一些常用的插件:1.Pylance:这是一个功能强大的语言服务器,提供了代码自动完成、类型检查、代码导航等功能。它可以与其他代码规范插件配合使用,提供实时的提示和建议。2.pylint:这是一个用于Python的静态代码......
  • 信创办公--基于WPS的Word最佳实践系列(图片背景的删除)
    一、删除类型(1)类型一:图片本身的背景颜色模块比较多,背景比较复杂(2)类型二:图片的背景颜色是非常单一的,比方说都是白色或者都是黑色二、对应的删除方法对于类型一这种背景,我们可以直接采取图片工具当中的扣除背景这样的一个命令;这样WPS中内置的自动智能识别功能便会自动将图片抠图出来,......
  • chrome 插件开发 获取当前页面地址
    在Chrome插件开发中,你可以使用chrome.tabsAPI来获取当前活动标签页的URL。下面是获取当前标签页URL的示例代码:chrome.tabs.query({active:true,currentWindow:true},function(tabs){if(tabs.length>0){constcurrentTab=tabs[0];constc......
  • jQuery插件开发详解
    jQuery插件开发详解1、首先使用闭包(把jQuery传入函数,形参是$)2、进入开发(上代码)3、处理传递进来的参数(在init:function(){}这个属性方法里面)4、完整示例5、最后一步,如何调用?1、首先使用闭包(把jQuery传入函数,形参是$)这里使用闭包的好处官方给出了三点解释:1.避免全局依赖2.避......
  • [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign
    [转]VSCode中Vetur插件排版Vue文件Col标签子标签不被缩进的问题iviewviewDesign自动格式化问题Col标签不对齐首先直接放解决办法在vsCodesettings.json中添加{//缩进大小,自行按需配置"vetur.format.options.tabSize":4,"vetur.format.defaultFo......
  • MybatisX-Generator自动代码生成插件使用
    使用步骤:1、安装MybatisX插件;2、idea的database连接数据库;3、数据库表上右键,点击MybatisX-Generator;4、 进行生成代码的配置,按自己的项目项目修改如图三个位置的路径,配置完成后点击Next 5、本人项目是Mybatis-plus项目,如图的配置是针对Mybatis-plus......
  • wps表格求标准差怎么算?
    在WPS表格中,要计算标准差,可以使用STDEV函数。标准差是一种衡量数据集合离散程度的统计指标。下面我将详细介绍如何使用STDEV函数来计算标准差。STDEV函数的语法为:STDEV(range)其中,range表示要计算标准差的数据范围,可以是一个单独的单元格区域,也可以是多个单元格区域的并集。接......
  • Eclipse 插件 资料放在
    1,slave4j:http://code.google.com/p/slave4j/(没有用过,路过型)某某虾人写的:slave4j插件能帮你做什么?   搭建spring,springmvc,hibernate开发环境   代码生成:生成curd代码,包括jsp......