|
本帖最后由 976190982 于 2020-10-8 20:19 编辑
运行了别人写的代码,代码中有很多这样的对象。
- CreateObject("Microsoft.XMLHTTP")
复制代码
因此我想有没有一种方法,根据这个代码,返回在vb工程引用的库文件是哪一个,名称是哪一个,不知道老师们是否有办法。
========================================
以下是解决办法:
找了很多的资料最近找到解决办法,然后加以自己修改,现在暂且放上来大家可以讨论下。这个是截图,可见已经很明显了能显示应用的是那一个文件了,只需要浏览就能找到该文件。
代码如下:
=================================================================
- '引用system32/TLBINF32.Dll
- Sub Form_Load()
- Dim oTLB As InterfaceInfo
- Dim Target As Object
- Set Target = CreateObject("Scripting.FileSystemObject") '"Scripting.FileSystemObject"为一般后期绑定的对象,可以自行修改
- Set oTLB = TLI.InterfaceInfoFromObject(Target)
- Debug.Print oTLB.Name
- Cells(2, 9) = oTLB.Parent.GUID
- Cells(2, 10) = oTLB.Parent.ContainingFile
- Cells(2, 11) = oTLB.Parent.Name
- For i = 1 To oTLB.Members.Count
- Select Case oTLB.Members(i).InvokeKind
- Case INVOKE_CONST
- Cells(i + 1, 1) = " 常数:" & oTLB.Members(i).Name
- Case INVOKE_EVENTFUNC
- Cells(i + 1, 2) = " 事件:" & oTLB.Members(i).Name
- Case INVOKE_FUNC
- Cells(i + 1, 3) = " 方法bai:" & oTLB.Members(i).Name
- Case INVOKE_PROPERTYGET
- Cells(i + 1, 4) = "属性(Get):" & oTLB.Members(i).Name
- Case INVOKE_PROPERTYPUT
- Cells(i + 1, 5) = "属性(Let):" & oTLB.Members(i).Name
- Case INVOKE_PROPERTYPUTREF
- Cells(i + 1, 6) = "属性(Set):" & oTLB.Members(i).Name
- Case INVOKE_UNKNOWN
- Cells(i + 1, 7) = " 未知:" & oTLB.Members(i).Name
- End Select
- Next i
- End Sub
复制代码
引用文件查询.zip
(13.67 KB, 下载次数: 46)
http://tzidc.jb51.net:81/dll/2013/tlbinf32_jb51.net.rar 如果没有这个dll文件,点击链接下载 然后复制到c:\windows\system32\目录中
如果中间出现ActiveX部件不能创建对象的错误,则用 管理员身份运行cmd,然后
regsvr32 "c:\windows\system32\TLBINF32.dll" 将其注册即可
或者下载附件,右键 以管理员身份运行cmd文件
tlbinf32DLL右键以管理员身份注册.zip
(269 Bytes, 下载次数: 34)
该过程可能需要很高的权限,因此,我建议用管理员身份运行EXCEL,再打开这个表格,运行过程。尤其是批量读取的时候。
补充内容 (2020-10-10 12:02):
留个记号:如果本机没有TLBINF32.dll文件的时候,需要从网上下载,下载后不要直接扔到system32目录中,这样注册的时候会有错误。
正确的注册方式是先打开这个表格,然后打开工具----引用----浏览,在这个窗口中粘贴
补充内容 (2020-10-10 12:03):
打开表格后,在vbe窗口中引用,复制到浏览的这个的窗口。 |
|