vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: COM/OLE/Registry/DLL · Sonstiges   |   VB-Versionen: VB4, VB5, VB617.11.03
Prüfen ob DLL vorhanden und DLL-Typ ermitteln

Dieser Tipp zeigt, wie sich prüfen lässt, ob eine bestimmte DLL vorhanden ist. Zudem ermittelt die Funktion "DLLAvail" noch den Typ der DLL.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  20.588 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Unser heutiger Tipp zeigt, wie sich prüfen lässt, ob eine bestimmte DLL vorhanden ist. Zudem ermittelt die Funktion noch den Typ der DLL. Als Rückgabe liefert die Funktion dann entweder "NoDLL", "StandardDLL" oder "ActiveXDLL".

Fügen Sie nachfolgenden Code in ein Modul ein:

Option Explicit
 
' Benötrite API-Deklarationen
Private Declare Function LoadLibrary Lib "kernel32" _
  Alias "LoadLibraryA" ( _
  ByVal lpLibFileName As String) As Long
 
Private Declare Function FreeLibrary Lib "kernel32" ( _
  ByVal hLibModule As Long) As Long
 
Private Declare Function GetProcAddress Lib "kernel32" ( _
  ByVal hModule As Long, _
  ByVal lpProcName As String) As Long
 
' DLL-Typ
Public Enum DLLType
  NoDLL = 0
  StandardDLL = 1
  ActiveXDLL = 2
End Enum
' DLL vorhanden?
' Wenn ja, Typ ermitteln und zurückgeben
Public Function DLLAvail(sFile As String) As DLLType
  Dim nHandle As Long
  Dim sProcedure As String
 
  ' DLL laden
  nHandle = LoadLibrary(sFile)
  If nHandle <> 0 Then
    ' jepp, es ist eine DLL
    DLLAvail = StandardDLL
 
    ' jetzt prüfen, ob es eine Standard-DLL
    ' oder ActiveX-DLL ist
    sProcedure = "DllRegisterServer"
    If CBool(GetProcAddress(nHandle, sProcedure)) = True Then
      DLLAvail = ActiveXDLL
    End If
 
    ' Speicher wieder freigeben
    Call FreeLibrary(nHandle)
  Else
    DLLAvail = NoDLL
  End If
End Function

Die Funktion DLLAvail erwartet als Parameter den Namen der DLL-Datei. Wird kein Pfad angegeben, wird in den Systempfaden nach der DLL gesucht.

Beispiel:

' Prüfen, ob die XP-spezifische "uxtheme.dll" vorhanden ist
Dim bAvail As Boolean
bAvail = (DLLAvail("uxtheme.dll") <> NoDLL)

Weiteres Beispiel:
Sie möchten ermitteln, ob es sich bei einer bestimmten DLL um eine Standard-DLL oder eine ActiveX-DLL handelt.

Dim nDLLType As DLLType
nDLLType = DLLAvail("c:\windows\system\myDLL.DLL")
Select Case nDLLType
  Case NoDLL
    MsgBox "DLL nicht gefunden oder keine echte DLL-Datei"
  Case StandardDLL
    MsgBox "Standard-DLL"
  Case ActiveXDLL
    MsgBox "ActiveX-DLL"
End Select

Dieser Tipp wurde bereits 20.588 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel