用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
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
上一篇: asp.net上传Excel文件并读取数据的实现方法
下一篇: 浅析PHP编程中10个最常见的错误