当前位置:首页 > 实用技巧 >

加载项为什么不自己运行(为什么加载项不能自己运行)

来源:原点资讯(m.360kss.com)时间:2023-11-18 11:10:18作者:YD166手机阅读>>

为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,若您觉得此文有用,不妨小范围地分享到真正有需要的人手中

功能概述

修复ExcelCom加载项常见问题,如每次需重新勾选COM加载项或COM加载项被列入禁用清单中不用使用,同时也提供让WPS计用COM加载项的方法

使用场景

因用户在使用COM技术开发的加载项过程中,难免各种意外操作,致使加载项处理非活动状态或失效状态,虽然可以通过界面的方式去解决,但步骤偏多,对普通用户来说,较难以去理解及操作,将其封装成一个exe文件,让用户自行双击运行解决是个不错的解决方案,本篇代码也是为这个功能场景而开发的。

技术原理

其实COM加载项的活动与否、禁用与否,都会在注册表上写上相关信息,只需从注册表层面对用户电脑的注册表项进行修改,即可实现非Excel界面操作的方式实现自动化修复插件。

WPS调用COM加载项原理,也只是在注册表上新增几个条目,让WPS可以通过查找注册表,找到COM加载项所在位置并调用它。

详细代码

using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 插件修复程序 { class Program { private static string addinsKeyWords = "Excel催化剂";//可以模糊查找注册表里含此关键字的条目 static void Main(string[] args) { ExcelRepair(); Console.WriteLine("修复完成,请按任意键退出!"); Console.ReadKey(); } private static void ExcelRepair() { //TODO:检查禁用项 CheckDisalbledItem(); //TODO:检查Addin注册表 CheckRegister(); //增加WPS可识别VSTO插件的方法,具体需要看真正安装后的注册表路径及项目名称是什么而定。 LetWPSRunAddins(); } private static void CheckDisalbledItem() { string keypath = @"Software\Microsoft\Office"; //\15.0\Excel\Resiliency\DisabledItems RegistryKey key = Registry.CurrentUser.OpenSubKey(keypath, true); FindAndDeleteDisabledItems(key, "DisabledItems", addinsKeyWords); } public static void CheckRegister() { RegistryKey key = Registry.CurrentUser; RegistryKey addins = key.OpenSubKey(@"Software\Microsoft\Office\Excel\Addins", true); foreach (var item in addins.GetSubKeyNames()) { if (item.ToUpper().Contains(addinsKeyWords.ToUpper())) { var addin = addins.OpenSubKey(item, true); addin.SetValue("LoadBehavior", "3", RegistryValueKind.DWord);//将启动方式改为3,即Excel打开时立即运行插件 } } } private static void LetWPSRunAddins() { RegistryKey key = Registry.CurrentUser; RegistryKey addins = key.OpenSubKey(@"Software\Microsoft\Office\Excel\Addins", true); var wps = key.CreateSubKey(@"Software\Kingsoft\Office\ET\AddinsWL"); wps.SetValue("Excel催化剂工作室.Excel催化剂", "Excel催化剂工作室.Excel催化剂", RegistryValueKind.String); wps.SetValue("Excel催化剂", "Excel催化剂", RegistryValueKind.String); wps.SetValue("Excel催化剂工作室.Excel催化剂离线版", "Excel催化剂工作室.Excel催化剂离线版", RegistryValueKind.String); } /// <summary> /// 查找指定项指定内容 /// </summary> /// <param name="key"></param> /// <param name="subkeyname">这里是禁用项的名称</param> /// <param name="deleteStr">自己插件的名称</param> private static void FindAndDeleteDisabledItems(RegistryKey key, string subkeyname, string deleteStr) { if (key.Name.Contains(subkeyname)) { for (int i = 0; i < key.ValueCount; i ) { try { foreach (var item in key.GetValueNames().Where(s => Encoding.Unicode.GetString((byte[])key.GetValue(s)).ToUpper().Contains(deleteStr.ToUpper()))) { key.DeleteValue(item); } } catch (Exception ex) { continue; } } return; } if (key.SubKeyCount > 0) { foreach (var item in key.GetSubKeyNames()) { try { FindAndDeleteDisabledItems(key.OpenSubKey(item, true), subkeyname, deleteStr); } catch (Exception ex) { continue; } } } } } }

开源地址为:https://github.com/minren118/ExcelUdfByExcelCuiHuaJi,不妨对您有帮助时帮忙在GtiHub上点个赞。

加载项为什么不自己运行,为什么加载项不能自己运行(1)

登录Github后点击红框给个星星

栏目热文

加载启动项取消不了(怎么设置启动加载项)

加载启动项取消不了(怎么设置启动加载项)

今天还是来水一篇吧!当我们安装一些软件后,软件会自动在WPS或者office中增加对应的菜单和加载项,让我们的办公软件臃...

2023-11-18 11:06:16查看全文 >>

启动项自动加载怎么解决(怎么删除自动启动项)

启动项自动加载怎么解决(怎么删除自动启动项)

新买的电脑越用越慢,甚至于开机得等好几份钟才能启动,其实在我们使用电脑过程中,难免会安装一些工具软件,就是安装这些软件以...

2023-11-18 11:08:13查看全文 >>

加载窗口出现问题怎样修复(载入窗口失败怎么办)

加载窗口出现问题怎样修复(载入窗口失败怎么办)

步骤一:检查电视连接在解决电视无法进入节目界面的问题之前,首先需要检查电视的连接是否正确。请按照以下步骤进行:检查电视与...

2023-11-18 11:10:47查看全文 >>

非洲象可以养吗(非洲象如何被驯服)

非洲象可以养吗(非洲象如何被驯服)

非洲大陆上生活着许多种神奇的动物,比如毒牙有五厘米长的加蓬咝蝰,会掏肛捕食猎物的斑鬣狗,还有体型庞大,母系氏族的群居动物...

2023-11-18 11:37:26查看全文 >>

野生亚洲象冬天怎么过冬(野生亚洲象习性介绍)

野生亚洲象冬天怎么过冬(野生亚洲象习性介绍)

1998年7月23日,科学家开始试图用冷冻精子复活猛犸。说到猛犸,你可知道,为什么它们能生活中冰雪的环境中? 猛犸象是更...

2023-11-18 11:00:50查看全文 >>

运行加载项在哪里设置(怎么设置启动加载项)

运行加载项在哪里设置(怎么设置启动加载项)

《VBA高级应用30例》(10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的...

2023-11-18 11:33:33查看全文 >>

加载启动项可以关闭吗(怎样删除加载的启动项)

加载启动项可以关闭吗(怎样删除加载的启动项)

你是否有过这样的经历:一打开电脑,无数的软件争先恐后地冒泡,占满了整个屏幕;各种各样的小窗广告也随即出现在了屏幕上。如果...

2023-11-18 10:59:36查看全文 >>

加载项禁用怎么处理(禁用加载项恢复方法)

加载项禁用怎么处理(禁用加载项恢复方法)

Windows Defender是Windows 10系统自带的杀毒防护软件。在使用过程中,如果遇到Windows D...

2023-11-18 11:24:05查看全文 >>

允许运行加载项在哪里设置(怎么设置允许运行加载项)

允许运行加载项在哪里设置(怎么设置允许运行加载项)

IT之家 10 月 20 日消息,根据微软近日公布的支持文档,Win11 新版 Outlook 将不再支持组件对象模型 ...

2023-11-18 11:05:33查看全文 >>

运行加载项为什么没反应(加载项显示已启用但无法加载)

运行加载项为什么没反应(加载项显示已启用但无法加载)

epic是和steam平台、暴雪战网等软件一样的数字游戏交易平台,玩家们可以在epic游戏商店里面看到非常多种类的游戏,...

2023-11-18 11:45:33查看全文 >>

文档排行