1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Wie kann ich aus Access heraus eine ActiveX-Datei Registrieren bzw. Deregistrieren?

Folgenden Code in öffentliches Modul kopieren:

Public Declare Function LoadLibrary _
     Lib "kernel32" Alias "LoadLibraryA" ( _
     ByVal lpLibFileName As String) As Long
 
Public Declare Function FreeLibrary _
     Lib "kernel32" ( _
     ByVal hLibModule As Long) As Long
 
Public Declare Function GetProcAddress _
     Lib "kernel32" ( _
     ByVal hModule As Long, _
     ByVal lpProcName As String) As Long
 
Public Declare Function CreateThread Lib "kernel32" ( _
     lpThreadAttributes As Any, _
     ByVal dwStackSize As Long, _
     ByVal lpStartAddress As Long, _
     ByVal lParameter As Long, _
     ByVal dwCreationFlags As Long, _
     lpThreadID As Long) As Long
 
Public Declare Sub ExitThread Lib "kernel32" ( _
     ByVal dwExitCode As Long)
 
Public Declare Function WaitForSingleObject _
     Lib "kernel32" ( _
     ByVal hHandle As Long, _
     ByVal dwMilliseconds As Long) As Long
 
Public Declare Function GetExitCodeThread _
     Lib "kernel32" ( _
     ByVal hThread As Long, _
     lpExitCode As Long) As Long
 
Public Declare Function CloseHandle _
     Lib "kernel32" ( _
     ByVal hObject As Long) As Long
 
Public Function RegisterLibrary(sFile As String, _
     ByVal bRegister As Boolean) As Boolean
 
    Dim bolRet As Boolean
     Dim lngLib As Long
     Dim strProc As String
     Dim lngRet1 As Long
     Dim lngRet2 As Long
     Dim lngThread As Long
 
    On Local Error GoTo RegisterLibrary_Error
 
    bolRet = False
     lngLib = LoadLibrary(sFile)
 
    If lngLib > 0 Then
         strProc = IIf(bRegister, "DllRegisterServer", _
             "DllUnregisterServer")
         lngRet1 = GetProcAddress(lngLib, strProc)
         If lngRet1 > 0 Then
             lngThread = CreateThread(ByVal 0, 0, ByVal lngRet1, _
                 ByVal 0, 0, lngRet2)
             If lngThread > 0 Then
                 lngRet2 = WaitForSingleObject(lngThread, 10000)
                 If lngRet2 > 0 Then
                     Call FreeLibrary(lngLib)
                     lngRet2 = GetExitCodeThread(lngThread, lngRet2)
                     Call ExitThread(lngRet2)
                     Exit Function
                 End If
                 Call CloseHandle(lngThread)
                 bolRet = True
             End If
         End If
         Call FreeLibrary(lngLib)
     End If
 
RegisterLibrary_Error:
     RegisterLibrary = bolRet
 
End Function

Aufruf z.B. zum Registrieren:

If RegisterLibrary("C:\Windows\System32\Deine.dll", True) Then
     MsgBox "Datei wurde erfolgreich regisriert"
Else
     MsgBox "Bei der Registrierung trat ein Fehler auf"
End If

Aufruf z.B. zum Deregistrieren:

If RegisterLibrary("C:\Windows\System32\Dein.ocx", False) Then
     MsgBox "Datei wurde erfolgreich deregisriert"
Else
     MsgBox "Bei der Deregistrierung trat ein Fehler auf"
End If

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool "SmartTools SQL aus Abfragen 3.0"...
1.png2.png1.png2.png7.png2.png7.png
Heute27
Gestern105
Diese Woche235
Dieser Monat1527
Total1212727

  • IP: 52.6.70.202
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

19. Dezember 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...