vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: regsvr32 
Autor: falcon
Datum: 04.06.04 22:13

Einer DLL wird eine GUID zugewiesen und dann in HKEY_CLASSES_ROOT eingetragen. Per Code geht das so:

Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal _
  lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, _
ByVal lpProcName As String) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As _
Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As _
Long
Private 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
Private Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As _
Long, lpExitCode As Long) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) _
As Long
Private Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)
 
Private Function RegServe(ByVal Path As String, Optional ByVal Remove As _
  Boolean = False) As Boolean
    Dim insthLib As Long, lpLibAdr As Long, hThd As Long, lpExCode As Long
    Dim procName As String, Result As Long, okFlag As Boolean, mode As Boolean
 
    mode = Not Remove
    insthLib = LoadLibrary(Path)
 
    If insthLib Then
        If mode Then
            procName = "DllRegisterServer"
        Else
            procName = "DllUnregisterServer"
        End If
 
        lpLibAdr = GetProcAddress(insthLib, procName)
        If lpLibAdr <> 0 Then
 
            hThd = CreateThread(ByVal 0, 0, ByVal lpLibAdr, _
                                ByVal 0&, 0&, 0&)
            If hThd Then
                Result = WaitForSingleObject(hThd, 5000)
                If Result = STATUS_WAIT_0 Then
                    Call CloseHandle(hThd)
                    okFlag = True
                Else
                    Call GetExitCodeThread(hThd, lpExCode)
                    Call ExitThread(lpExCode)
                    Call CloseHandle(hThd)
                End If
            End If
        End If
 
        Call FreeLibrary(insthLib)
    End If
 
    If Not okFlag Then
        RegServe = False
    Else
        RegServe = True
    End If
End Function
grüße
falcon
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
regsvr32502Breaker02.06.04 10:11
Re: regsvr32324Remirror02.06.04 19:11
Re: regsvr32325falcon04.06.04 22:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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