在vbscript中判断COM类是否存在的实现代码
作者:归人云淡风轻
时间:2026-06-29
浏览:3
在VBS脚本中判断COM类是否存在有两种常用方法:注册表查询法快速但可能因残留键值误判;尝试创建法准确可靠但耗时且可能留下进程残留。两种方法各有优劣,开发者应根据实际场景权衡速度与准确性。
本文目录
在 VBS 脚本开发中,有时候我们得判断某个 COM 类到底存不存在,才能决定下一步走哪条分支。这里介绍两种基本方法,返回布尔值,为真就说明这个类注册有效。

1、注册表查询法。
Function ComExist(ComName)
Dim WshShell
Set WshShell = CreateObject("Wscript.Shell")
On Error Resume Next
WshShell.RegRead("HKCR"&ComName&"")
ComExist = CBool(Err.Number = 0)
On Error Goto 0
End Function
这个方法借用了 Windows Script Host 自带的 WScript.Shell 对象,直接去注册表里翻一翻,看看对应 ProgID 是否存在。优点很明显:快,不用真的创建对象实例。但缺点也得留意——某些 COM 组件卸载不干净,注册表里还残留着键值,会导致误判;另外如果 WScript.Shell 本身出了问题,那就没法用了。
2、尝试创建法。
Function ComExist(ComName) On Error Resume Next Set CreateTest = CreateObject(ComName) ComExist = CBool(Err.Number = 0) On Error Goto 0 End Function
这个办法更直接——管它三七二十一,先创建一下对象试试,能成功就说明类存在。优点是非常严谨靠谱,是真创建还是假创建,一眼便知。但代价也不小:如果你拿它去测试那些创建和销毁都很耗时的类(比如 Word.Application ),不仅会等得心焦,还会留下进程残留——Word 对象不手动调用 .Quit 的话,后台进程会一直挂着。
两种方法各有适用场景。简单快速选注册表法,追求准确就用创建法,看具体需求取舍就好。
作者最新文章
解决win10运行3DMAX自动重启的方法
2026-10-13 17:08
哔哩哔哩投稿封面上传失败怎么解决
2026-10-13 15:55
漫蛙漫画官网免费漫画入口
2026-10-13 13:19
漫蛙漫画app免费下载安装最新版
2026-10-13 13:18
漫蛙漫画官网登录入口
2026-10-13 13:18
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































