vbscriptでCOM類が存在するかどうかを判断する実現コード

1027 ワード

この文章は劉さんのオリジナルです。転載には原作者のニックネームを明記しなければなりません。
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が必要です。