是否可以按名称空间和类名列出COM对象?

时间:2013-01-07 11:48:57

标签: windows com batch-file

在批处理文件中,在用户安装某些内容之前,我需要验证他是否未使用给定的命名空间和类名注册其他CLSID。这可能吗 ?我的理解是这是ProgID。我知道ProgID不是必需的,可能会丢失一些COM对象,但如果存在,我想检查一下。

我可以通过regedit直观地做到这一点,但这显然不符合我的目的。

1 个答案:

答案 0 :(得分:1)

这将使用ProgID键遍历所有CLSID并检查它们是否与指定的字符串匹配。

@echo off
setlocal EnableDelayedExpansion

set "xLast="
for /F "tokens=1,2,*" %%A in ('reg query HKCR\CLSID /s /f ProgID /k /e /ve') do (
    rem echo(%%C
    if "%%~C" EQU "Enter ProgID to match on here" echo Found Match: !xLast!
    set "xLast=%%A %%B %%C"
)

endlocal
pause