vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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

ActiveX-Programmierung
Re: Eine ActiveX-EXE registrierfähig machen 
Autor: Dom
Datum: 14.02.03 14:30

Beispiel um eine Dll zur Laufzeit zu registrieren

 
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 Sub ExitThread Lib "kernel32" (ByVal dwExitCode _
As Long)

Private Declare Function FreeLibrary Lib "kernel32" _
(ByVal hLibModule As Long) As Long

Const STATUS_WAIT_0 = &H0




Function RegServe(ByVal Path$, Mode As Boolean) As Boolean
Dim insthLib&, lpLibAdr&, hThd&, lpExCode&
Dim procName$, Result&, okFlag As Boolean

'DLL in den Speicher laden
insthLib = LoadLibrary(Path)

'Aktion wählen
If insthLib Then
If Mode Then
procName = "DllRegisterServer"
Else
procName = "DllUnregisterServer"
End If

'Adresse der DLL im Speicher
lpLibAdr = GetProcAddress(insthLib, procName)
If lpLibAdr <> 0 Then

'Aktion starten
hThd = CreateThread(ByVal 0, 0, ByVal lpLibAdr, _
ByVal 0&, 0&, 0&)
If hThd Then
'Maximal 5 sec warten
Result = WaitForSingleObject(hThd, 5000)
If Result = STATUS_WAIT_0 Then
'Vorgang erfolgreich in 5 sec beendet
Call CloseHandle(hThd)
okFlag = True
Else
'5 sec überschritten -> Thread schließen
Call GetExitCodeThread(hThd, lpExCode)
Call ExitThread(lpExCode)
Call CloseHandle(hThd)
End If
End If
End If

'Speicher wieder freigeben
Call FreeLibrary(insthLib)
End If

If Not okFlag Then
RegServe = False
'MsgBox ("Fehler! Der Vorgang wurde abgebrochen.")
Else
RegServe = True
'MsgBox ("Der Vorgang war erfolgreich!")
End If
End Function

Beispiel aufruf
If RegServe(App.Path & "\" & Name, True) = True then
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Eine ActiveX-EXE registrierfähig machen303KP13.02.03 19:18
Re: Eine ActiveX-EXE registrierfähig machen659ModeratorDieter13.02.03 19:38
Re: Eine ActiveX-EXE registrierfähig machen227Dom14.02.03 14:30

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