ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: fecmen

[分享] Excel加载文件管家-轻松加载卸载DLL封装函数、加载宏,一键搞定!

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 13:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

扫描DLL文件基本情况核心代码公布

'**************************************************************************************************************
'* 本模块提供了一些对VB下的DLL文件进行操作的函数
'* 提示: 本函数用于扫描DLL文件中的ProID、Clsid值,以及已注册DLL文件的路径情况
'* 应用: 该模块需要用到DLL文件TypeLib Information(TLBINF32.DLL)
'* 作者: 王小军(Fecmen)
'**************************************************************************************************************

Public Function ScanCurdll(ByVal StrFullName As String, ProgID() As String, Clsid() As String, StrPath() As String) As Integer
    'StrFullName应该含有路径和文件名
    Dim TLIApp As Object, TLBInfo As Object, TypeInf As Object, i As Integer, ClassNum As Integer
    Set TLIApp = CreateObject("TLI.TLIApplication")
  Set TLBInfo = TLIApp.TypeLibInfoFromFile(StrFullName)
   
    ClassNum = TLBInfo.CoClasses.Count
    ReDim ProgID(ClassNum - 1): ReDim Clsid(ClassNum - 1): ReDim StrPath(ClassNum - 1)
   
    For Each TypeInf In TLBInfo.CoClasses
                i = i + 1
                ProgID(i - 1) = TypeInf.Parent & "." & TypeInf.Name
                Clsid(i - 1) = TypeInf.Guid
                StrPath(i - 1) = Regdit_Opr.GetKeyValue(HKEY_CLASSES_ROOT, "CLSID\" & Clsid(i - 1) & "\InprocServer32", "")
    Next
    ScanCurdll = ClassNum
    Set TLIApp = Nothing
    Set TLBInfo = Nothing
End Function

TA的精华主题

TA的得分主题

发表于 2011-6-10 13:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
公布代码呀

TA的精华主题

TA的得分主题

发表于 2011-6-10 13:26 | 显示全部楼层
不知道支不支持被禁用的加载项目

TA的精华主题

TA的得分主题

发表于 2011-6-10 13:38 | 显示全部楼层
點接受後出現如圖提示,安裝失敗,請大家幫助解決,本人用的繁體系統  EXCEL 為2003
1212.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 13:44 | 显示全部楼层
原帖由 w327555162 于 2011-6-10 13:38 发表
點接受後出現如圖提示,安裝失敗,請大家幫助解決,本人用的繁體系統  EXCEL 為2003



是因为程序存在的一个小Bug,当数组为空时,未加入判断语句所致。程序还是能兼容繁文系统的。判断语句大致情况如下:

Option Explicit
Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long
Private Sub Command1_Click()
Dim arrT() As Long
'ReDim arrT(0)
MsgBox SafeArrayGetDim(arrT)
End Sub

没有redim,api返回零,redim了,返回非零。

[ 本帖最后由 fecmen 于 2011-6-12 14:51 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-6-10 14:08 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 14:54 | 显示全部楼层

回复 16楼 LWM2791 的帖子

系统丢失控件,正在完善中。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 17:20 | 显示全部楼层
本帖最后由 fecmen 于 2012-11-3 22:39 编辑
原帖由 LWM2791 于 2011-6-10 14:08 发表
我用的2003


已经解决!!  为了运行环境的稳定,只有牺牲程序的占用空间了。程序空间增加不少,主要防止有的系统存在缺少通用控件,增加了程序扫描功能,如果系统缺失控件则自动注册。因该程序增强版中添加几个控件,占用了程序不少宝贵的空间!郁闷!

------------------------------最新的程序放置在一楼!

[ 本帖最后由 fecmen 于 2011-7-23 13:58 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 18:59 | 显示全部楼层
原帖由 w327555162 于 2011-6-10 13:38 发表
點接受後出現如圖提示,安裝失敗,請大家幫助解決,本人用的繁體系統  EXCEL 為2003



此问题已经解决,主要是程序有个小Bug。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-10 20:52 | 显示全部楼层
程序已经更新,更新程序已经放置在一楼,大家提到的问题已经解决。

我已上传两个版本的程序:1、简约版,里面未单独存控件,全靠系统控件运行,缺少系统控件的计算机可能运行不畅;
                        2、加强版,程序里存有多个控件因而占用空间较多,程序运行时会自动检测系统是否缺乏相应控件,如缺少会自动安装。

[ 本帖最后由 fecmen 于 2011-6-10 20:57 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 06:49 , Processed in 0.048187 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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