1
從批處理文件中,在用戶安裝某些東西之前,我需要驗證他沒有註冊具有給定名稱空間和類名的其他CLSID。這可能嗎 ?我的理解是,這是ProgID。我知道ProgID不是必需的,可能會缺少某些COM對象,但是它存在的位置,我想檢查它。是否可以按名稱空間和類名列出COM對象?
我可以通過註冊表直觀地做到這一點,但這顯然不符合我的目的。
從批處理文件中,在用戶安裝某些東西之前,我需要驗證他沒有註冊具有給定名稱空間和類名的其他CLSID。這可能嗎 ?我的理解是,這是ProgID。我知道ProgID不是必需的,可能會缺少某些COM對象,但是它存在的位置,我想檢查它。是否可以按名稱空間和類名列出COM對象?
我可以通過註冊表直觀地做到這一點,但這顯然不符合我的目的。
這將使用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
任何你可以通過註冊表編輯器直觀地做應該可以用「章」命令acomplish,只是「REG查詢」一則查詢PROGID讀取進程id(如果存在)。我會發布更多的細節,但不幸的是我沒有一個Windows系統手頭atm。 – weberik