返回Excel催化剂目录

产品文档 / Excel催化剂

第32波-VSTO开发的插件让WPS顺利调用的方法-注册表增加注册信息

VSTO插件开发完成后,鉴于现在WPS用户也不少,很多时候用户没办法用OFFICE软件,只能在WPS环境下办公,VSTO开发的插件,只需增加一句注册表信息,即可让WPS识别到并调用VSTO开发的功能,可能部分功能让WPS使用要考虑WPS是否有相应的API接口,这是后话,本帖给大家粘出代码及程序,让用

VSTO插件开发完成后,鉴于现在WPS用户也不少,很多时候用户没办法用OFFICE软件,只能在WPS环境下办公,VSTO开发的插件,只需增加一句注册表信息,即可让WPS识别到并调用VSTO开发的功能,可能部分功能让WPS使用要考虑WPS是否有相应的API接口,这是后话,本帖给大家粘出代码及程序,让用户双击即可完成,exe封装,无需给用户注册表文件让用户畏惧或其他安全软件报警。

为了让所有插件都能顺利被WPS识别到,索性来一个遍历,所有插件都在注册表里添加一条记录供WPS识别,注册表增加几条记录,也不算是什么垃圾拥堵(WPS安装过程中貌似也注入了大量的常规用户会安装到的插件,实际电脑上没有安装过也会注入,所以人家WPS还是人性化,为用户着想),也省下不少用户要为特定VSTO来每次做处理。

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\WPP\AddinsWL" },
                    {@"Software\Microsoft\Office\Word\Addins",@"Software\Kingsoft\Office\WPS\AddinsWL" },
                };

                foreach (var item in dic)
                {
                    var addins = key.OpenSubKey(item.Key, true);
                    var wps = key.CreateSubKey(item.Value);
                    foreach (var subKeyName in addins.GetSubKeyNames())
                    {
                        wps.SetValue(subKeyName, subKeyName, RegistryValueKind.String);
                    }
                }
            }
            catch (Exception)
            {

            }
        }