在vbscript中判断COM类是否存在的实现代码
作者:归人云淡风轻
时间:2026-06-29
浏览:12
在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 的话,后台进程会一直挂着。
两种方法各有适用场景。简单快速选注册表法,追求准确就用创建法,看具体需求取舍就好。
作者最新文章
coreldraw快捷键怎么设置在哪里
2026-11-02 21:39
AO3最新可用链接及中文入口汇总
2026-10-29 13:32
coreldraw怎么插入图片 图片导入步骤
2026-10-27 15:37
coreldraw快捷键冲突 怎么改 自定义按键解决
2026-10-24 08:50
AO3中文界面设置指南与核心功能使用教程
2026-10-14 23:28
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































