欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-10 18:31:32
'要用到regtool.ocx,请下载,用前请regsvr32   regtool.ocx  set wshshell&n...
'要用到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