Rubrik: Entwicklungsumgebung · VB-IDE allgemein | VB-Versionen: VB4, VB5, VB6 | 08.10.04 |
Läuft die DLL in der IDE Mit diesem Tipp können Sie innerhalb Ihrer ActiveX-DLL prüfen, ob die DLL innerhalb der IDE ausgeführt wird oder innerhalb einer kompilierten Anwendung. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.799 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Folgendes Szenario: Sie haben eine eigene ActiveX-DLL programmiert und möchten jetzt beim Initialisieren der DLL prüfen, ob ein Programm, welches die DLL als Verweis eingebunden hat, in der Entwicklungsumgebung von VB ausgeführt wird oder als kompilierte EXE-Datei.
Fügen Sie hierzu folgenden Code in das Klassenmodul der ActiveX-DLL:
' benötigte API-Deklaration Private Declare Function GetModuleFileName Lib "kernel32" _ Alias "GetModuleFileNameA" ( _ ByVal hModule As Long, _ ByVal lpFileName As String, _ ByVal nSize As Long) As Long
' Wird die DLL in der IDE oder aus einer ' kompilierten EXE-Datei heraus aufgerufen? Private Function IsIDE() As Boolean Dim nResult As Long Dim sName As String sName = Space$(255) nResult = GetModuleFileName(0, sName, Len(sName)) If nResult > 0 Then sName = UCase$(Left$(sName, nResult)) If InStr(sName, "\") > 0 Then sName = Mid$(sName, InStrRev(sName, "\") + 1) IsIDE = (sName = "VB4.EXE" Or sName = "VB5.EXE" Or sName = "VB6.EXE") End If End Function
Der Aufruf erfolgt dann bspw. im Initialize-Ereignis des Klassen-Moduls:
Private Sub Class1_Initialize() If Not IsIDE() Then MsgBox "Hinweis! ..." End If End Sub