vbscriptでCOM類が存在するかどうかを判断する実現コード
この文章は劉さんのオリジナルです。転載には原作者のニックネームを明記しなければなりません。
VBSでは、COMクラスが存在するかどうかを判断して、異なる操作を実行する必要があります。
ここでは2つの基本的な方法を紹介します。その関数の戻り値はBool値で、真ならCOM類の存在を証明します。
1、レジストリ照会法。
利点:高速で、オブジェクトを作成する必要がありません。
短所:一部のCOM類のアンインストールが残っていると、この関数が誤判される可能性があります。WScript.Shellオブジェクトが異常であると判断できません。
2、作成を試みる。
利点:非常に厳密な&信頼性。
短所:これを使って作成&廃棄時間の長い種類をテストすると、大量の時間がかかります。また、Wordオブジェクトはマニュアル・Quitが必要です。
VBSでは、COMクラスが存在するかどうかを判断して、異なる操作を実行する必要があります。
ここでは2つの基本的な方法を紹介します。その関数の戻り値はBool値で、真なら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
この方法はWin Script Hostに付属するCOM類を使用しています。レジストリを直接調べてCOMクラスが有効かどうかを確認します。利点:高速で、オブジェクトを作成する必要がありません。
短所:一部の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
この方法は比較的簡単で乱暴で、COMオブジェクトを直接作成してみたら成功しませんでした。利点:非常に厳密な&信頼性。
短所:これを使って作成&廃棄時間の長い種類をテストすると、大量の時間がかかります。また、Wordオブジェクトはマニュアル・Quitが必要です。