在vbscript中判斷COM類(lèi)是否存在的實(shí)現(xiàn)代碼
該文章由老劉原創(chuàng),轉(zhuǎn)載需注明原作者昵稱(chēng)。
在VBS中,我們有時(shí)需要判斷一個(gè)COM類(lèi)是否存在,以便執(zhí)行不同的操作。
這里介紹2種基本的方法,其函數(shù)的返回值為Bool值,為真則證明COM類(lèi)存在。
1、注冊(cè)表查詢(xún)法。
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
該方法用到了一個(gè)Win Script Host附帶的COM類(lèi)。通過(guò)直接查詢(xún)注冊(cè)表來(lái)確定COM類(lèi)是否有效。
優(yōu)點(diǎn):快速,無(wú)需創(chuàng)建對(duì)象。
缺點(diǎn):一些COM類(lèi)的卸載殘留可能會(huì)使該函數(shù)誤判。如果WScript.Shell對(duì)象異常,會(huì)無(wú)法判斷。
2、嘗試創(chuàng)建法。
Function ComExist(ComName) On Error Resume Next Set CreateTest = CreateObject(ComName) ComExist = CBool(Err.Number = 0) On Error Goto 0 End Function
該方法比較簡(jiǎn)單粗暴,直接創(chuàng)建下COM對(duì)象看看成不成功。
優(yōu)點(diǎn):非常的嚴(yán)謹(jǐn)&靠譜。
缺點(diǎn):如果用這個(gè)來(lái)測(cè)試一些創(chuàng)建&銷(xiāo)毀時(shí)間長(zhǎng)的類(lèi)(如Word.Application),會(huì)耗費(fèi)大量時(shí)間,并留下進(jìn)程殘留(如Word對(duì)象需手動(dòng).Quit)。
相關(guān)文章
vbs 中調(diào)用shell.application 簡(jiǎn)單函數(shù)
vbs實(shí)現(xiàn)的調(diào)用系統(tǒng)命令執(zhí)行的函數(shù),可以根據(jù)用戶(hù)選擇運(yùn)行指定的程序2008-06-06用vbs腳本來(lái)關(guān)閉 HTML 頁(yè)面的代碼
有時(shí)候我們需要用vbs來(lái)關(guān)閉頁(yè)面,可以通過(guò)標(biāo)題名稱(chēng)或者全部關(guān)閉頁(yè)面,下面就來(lái)看下相關(guān)的資料吧,亮點(diǎn)在后面哦2007-03-03VBS教程:函數(shù)-ScriptEngineMinorVersion 函數(shù)
VBS教程:函數(shù)-ScriptEngineMinorVersion 函數(shù)...2006-11-11不錯(cuò)的一篇VBS-JSCRIPT GETOBJECT理解
不錯(cuò)的一篇VBS-JSCRIPT GETOBJECT理解...2007-03-03VBS基礎(chǔ)篇 - FileSystemObject對(duì)象詳解
文件系統(tǒng)是所有操作系統(tǒng)最重要的部分之一,腳本經(jīng)常會(huì)需要對(duì)文件及文件夾進(jìn)行訪(fǎng)問(wèn)和管理,在Vbs中對(duì)桌面和文件系統(tǒng)進(jìn)行訪(fǎng)問(wèn)的頂級(jí)對(duì)象是FileSystemObject,需要的朋友可以參考下2018-05-05