RSS
StartseiteKnowledge LibraryTop 10Impressum

9.5 Wie kann ich feststellen, ob ein Objekt registriert ist?

VB4-VB6

Von: Thorsten Dörfler

Um festzustellen, ob ein Objekttyp überhaupt auf dem Rechner registriert ist, kann man versuchen die Klasse, also die Zeichenfolge, die auch CreateObject erwartet "LibraryName.ClassName", zu der passenden Klassen-ID (CLSID) aufzulösen. Ist dieser Versuch erfolgreich, kann man davon ausgehen, dass das Objekt verfügbar ist:

' Deklaration:
Private Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(0 To 7) As Byte
End Type

Private Declare Function CLSIDFromProgID Lib "ole32.dll" _
       (ByVal ProgID As Long, rclsid As GUID) As Long

Public Function ObjectExists(ByVal Class As String) As Boolean
  Dim lGUID As GUID

  If CLSIDFromProgID(StrPtr(Class), lGUID) = 0 Then
    ObjectExists = True
  End If
End Function

Anwendung:

Debug.Print ObjectExists("Word.Application")

Letzte Gewissheit, ob das verfügbare Objekt auch wirklich richtig registriert, installiert und damit erstellbar ist, kann nur der Versuch ergeben, das Objekt auch zu erstellen. Durch entsprechende Fehlerbehandlung, kann man bei einenm Fehlschlag angemessen reagieren.