首页 > 编程 > VBScript > 正文

用vbs列出机器上所有能调用的组件

2020-06-26 18:16:40
字体:
来源:转载
供稿:网友
列出机器上vbs所有能调用的组件
 
'要用到regtool.ocx,用前请regsvr32   regtool.ocx  

set wshshell = CreateObject("WScript.Shell")  
set registry = CreateObject("regtool.tob")  
'获取一个dictionary对象存储键名  
set dict = CreateObject("Scripting.Dictionary")  
'列举HKEY_CLASSES_ROOT中所有键  
set allkeys = registry.RegEnum("HKCR/")  
'排除所有键中键名有点的。  
for each key in allkeys  
'第1个点在哪儿(跳过初始点)?  
pos = Instr(2, key, ".")  
if pos>0 then  
'there's a dot. Is there another one?  
pos2 = Instr(pos+1, key, ".")  
if pos2>0 then  
'yes, so this name is version specific  
'check whether we already have a  
'version-independent progid!  
independent = left(key, pos2-1)  
if not dict.Exists(independent) then  
'no, store it  
dict.Add key, 0  
end if  
else  
'this one is version-independent.  
'do we already have a version-dependent  
'progID in store?  
vdpid = ""  
for each element in dict  
if len(element)>len(key) then  
if left(element, len(key)+1)=key & "." then  
'yes, return name  
vdpid = element  
exit for  
end if  
end if  
next  
'any version dependent progID found?  
if vdpid="" then  
'no, add to store  
dict.add key, 0  
else  
'yes, replace  
dict.Remove vdpid  
dict.add key, 0  
end if  
end if  
end if  
next  
MsgBox dict.Count & " Objects found!"  
for each key in dict  
list = list & key & vbCrlf  
next  
MsgBox list  
outputfile = "C:/OBJECT.TXT"  
set fs = CreateObject("Scripting.FileSystemObject")  
set output = fs.CreateTextFile(outputfile, true)  
print dict.Count & " Objects found!"  
Print list  
output.close  
wshshell.run outputfile  
sub Print(text)  
'写信息到记录文件  
output.WriteLine text  
end sub 
 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表