Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0392: Eine ActiveX-EXE erstellen, ActiveX-Server

 von 

Beschreibung 

Ein schönes knappes Beispiel, welches die Erstellung einer ActiveX-Exe zeigt. Das Rahmenkonstrukt des Servers kann beliebig erweitert werden. Neben einbindbaren Funktionen, ist hier auch das Auslösen von Events berücksichtigt worden.

Dieser Tipp funktioniert entweder nur in kompilierter Form oder benötigt eine DLL/OCX-Datei. Diese Binärdateien sind dem Tipp hinzugefügt worden, um seinen Funktionsumfang darstellen zu können. Vor dem Upload wurden sie auf Viren geprüft.

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [7,87 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'----------- Anfang Projektdatei prjCOMServer.vbp -----------
'--------- Anfang Klasse "clsCOM" alias clsCOM.cls  ---------


'Autor: Alex Englhardt
'E-Mail: alex.englhardt@t-online.de

Public Event DataReceived(CompleteData As String)
Public Event DataError()

Private Sub Class_Initialize()
  Call frmCOM.Show
End Sub

Private Sub Class_Terminate()
  Call Unload(frmCOM)
End Sub

Public Function ReceiveData(Data As String)
    If Len(Data) = 0 Then
        RaiseEvent DataError
    Else
        If Len(frmCOM.txtData.Text) = 0 Then
            frmCOM.txtData.Text = Data
        Else
            frmCOM.txtData.Text = frmCOM.txtData.Text & vbCrLf & Data
        End If
        
        RaiseEvent DataReceived(frmCOM.txtData.Text)
    End If
End Function

Property Let EnableForm(Enabled As Boolean)
    frmCOM.Enabled = Enabled
End Property
'---------- Ende Klasse "clsCOM" alias clsCOM.cls  ----------
'-------- Anfang Formular "frmCOM" alias frmCOM.frm  --------
' Steuerelement: Textfeld "txtData"
' Steuerelement: Beschriftungsfeld "lblData"
' Steuerelement: Beschriftungsfeld "lblCaption"

'--------- Ende Formular "frmCOM" alias frmCOM.frm  ---------
'------------ Ende Projektdatei prjCOMServer.vbp ------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 5 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von rudi am 11.01.2007 um 15:29

Damit die Sache funktioniert, einmal auf die prjCOMServer.exe doppelklicken. Damit wird ActiveX-EXE in die Registry bekannt eingetragen.

Mit folgenden VBScript kann dann darauf zugegriffen werden:

Set pri = CreateObject("prjCOMServer.clsCOM")
pri.EnableForm = True
pri.ReceiveData ("test")
msgbox "Script Ende"

Kommentar von Florian Steiner am 18.03.2004 um 13:57

Hi!
Ich sehe das Form nicht wenn ich die exe starte!
gibt es eine Möglichkeit das Form anzuzeigen?
thx

Kommentar von Dirk Simon am 21.08.2003 um 16:14

Ich habe es mit unten stehendem Beispielcode probiert, erhalte aber die Fehlermeldung:

Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert

Dim pri As New prjCOMServer.clsCOM
pri.EnableForm = True
pri.ReceiveData ("test")

Kann jemand weiterhelfen?

Gruß
Dirk

Kommentar von pvt am 03.07.2003 um 14:28

ein kleiner VB Client zu diesem Server:
Dim pri As New prjCOMServer.clsCOM
pri.EnableForm = True
pri.ReceiveData ("test")

Kommentar von Stefan F. am 15.02.2002 um 10:17

Hallo zusammen,
nachdem ich den Server lokal gestartet habe, gelingt es mir mit einem selbst geschriebenen Programm auf die Server-Funktion zuzugreifen. Jipiee. Jetzt bin ich an einen anderen Rechner im lokalen Netzwerk gegangen und wollte von dort aus auf die Funktion zugreifen. Fehler: Klasse nicht registriert. Ähm...kann mir mal jemand Nachhilfe geben bzg. dieser Clientprogrammierung? Oder ein Client-Beispiel?
Ich danke euch schon mal für Eure Mithilfe
Stefan