ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 432|回复: 2

分享一个函数(VB解码被禁用的加载项)(原创)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-30 11:52 | 显示全部楼层 |阅读模式


网上似乎没有使用VB解码被禁用的ComAddin加载项的代码,反正我没搜到过。李老板的催化剂C#代码是有点问题的,你可以好好测试测试。

所以我自己撸了一个VB的。欢迎拍砖。

EXCEL Comaddin如果报错或者被非法操作可能被EXCEL自动禁用,是非常烦人的事情。

可以手工通过 EXCEL 文件菜单栏---> EXCEL选项--->加载项--->禁用项目---转到,选中了,启用 。 但是手工操作挺麻烦。

于是就代码自动删除被禁用的加载项。

comaddin被禁用之后,会在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\ {EXCEL版本号} \Excel\Resiliency\DisabledItems" 增加被禁用的记录。

(其中 {EXCEL版本号} 占位为 10.0、 11.0 、 12.0 、 14.0 、15.0、 16.0  等等 根据自己需要修改)

那么解码被禁用的加载项内容,从而判断是不是需要启用的加载项,就比较有用了。

遍历DisabledItems项,调用如下解码函数。

解码函数如下:


Public Function DecodeDisabledItem(sValue As String) As String

                Dim buf() As Byte
                buf = sValue
                Dim i As Long
                Dim StrChange As String
                Dim temps As String
                Dim n0 As Integer

                For i = 24 To UBound(buf)  '0-23 位 是特定的标识符 :    6 ( ACK 回应/响应/收到通知)   +   7 个 0----> 63 (?) +   7 个 0  +  48 (数字0) + 7个0
                   If buf(i) = 0 Then
                       n0 = n0 + 1
                   Else
                       n0 = 0
                   End If

                   If n0 = 7 Then                    
'                    temps = temps & " " '7个0代表分隔
                    Exit For
                   End If

                   If buf(i) > 0 Then '不存在 32 空格 ,分隔就是7个0
'                        Debug.Print "buf(i) = " & buf(i) & " ---> (i) = " & i & " -->   " & Chr(buf(i))
                        temps = temps & Chr(buf(i))
                   End If
                Next i
               
                DecodeDisabledItem = CStr(temps)
End Function


解码出被禁用的内容文件路径之后,可以自己再根据需要判断(路径或者关键字)是否调用 RegDeleteKey API删除即可。

TA的精华主题

TA的得分主题

发表于 2023-5-30 15:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-30 15:53 | 显示全部楼层
f8b1987 发表于 2023-5-30 15:11
楼主不如直接弄个工具出来

工具没意思啊,关键的就是这个解码啊,其他自己根据需要搞一下就行了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 08:31 , Processed in 0.039382 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表