Forum: PC-Programmierung ActiveX Steuerelemente in EXE-Datei integrieren


von Thomas (Gast)


Lesenswert?

Hallo,

ich habe ein Tool zum Loggen von Messdaten programmiert.
In Visual Basic 6.0.
Das Programm soll ohne Installation auf jedem Windows-Rechner laufen.

Das mittlerweile alte VB6 hat den Vorteil, dass die notwendige 
Runtime-Library in jedem aktuellen Windows enthalten ist.

Nun muss ich aber Steuerelemente einbinden, die nicht auf jedem Rechner 
vorhanden sind:

MSCOMM32.OCX (serielle Schnittstelle)
COMDLG32.OCX (Datei öffnen und speichern Dialog)
COMCTL32.OCX (Tabs zum Gruppieren von Steuerelementen)

Diese ActiveX-Dateien kann ich ja mit dem Programm ausliefern, aber 
dummerweise müssen die in der Registry registriert werden. Das ist 
unschön und geht auch nur mit Admin-Rechten.

Nun meine Frage: Wie könnte man diese Dateien nutzen ohne sie zu 
registrieren? Kennt sich da jemand aus?
Was kann man tun?

von Martin J. (mj04)


Lesenswert?

Hallo,
wenn diese OCXe nicht auf dem System registriert sind, sehe ich schwarz. 
Meine VB6 Zeiten liegen zwar schon etwas zurück. Aber das sind so 
ziemlich die wichstigeten OCXe unter VB6.
Diese kannst du mit vertretbarem Aufwand auch nicht ersetzen. Warum die 
Sourcen nicht portieren?
Die Funktion hast du ja. Z.B. Delphi/FreePascal, da landet dann alles in 
einer nativen exe ohne ocx Gezumpe. Oder gleich .Net, PHP, perl oder 
oder oder.
Je nachdem wie aufwändig dein Programm ist. Wenn es "nur" loggt sehe ich 
da weniger Aufwand in einer Umsetzung, als wenn man das alte Programm 
anpasst (wenn überhaupt möglich).
Ich habe auch noch so einige Altlasten (entsanden 1995-2001) die ich 
betreue. Die VB6 Geschichten laufen sauber, aber wenn dann muss der 
Kunde die Umgebung bereitstellen (ocxe installieren/registrieren) oder 
ab in eine VMWare. Oder er muss die Umstellung bezahlen.
Bisher kommt es selten zur Umprogrammierung, da erlaubt dann die IT doch 
meist lieber die Installation von fehlenden Komponenten ...

von Robert L. (lrlr)


Lesenswert?

>Diese ActiveX-Dateien kann ich ja mit dem Programm ausliefern, aber
>dummerweise müssen die in der Registry registriert werden. Das ist
>unschön und geht auch nur mit Admin-Rechten.

das ist zwar richtig
ABER: jede Installation geht nur mit Admin rechten
sonst kann man nämlich nicht nach c:\program files(x86)\ schreiben

warum willst du nichts installieren müssen?



und du wirst ja wohl nicht vor haben, die exe woanders hin zu speichern 
;-)
oder noch schlimmer, kein setup (msi) usw zu verwenden ?

ohne registrieren:

weiß ich auch nicht
ist ne ocx nicht eine DLL?
kann man die dynamisch linken und den ActiveX server inProcess starten?

von Sven H. (dsb_sven)


Lesenswert?

Robert L. schrieb:
> ABER: jede Installation geht nur mit Admin rechten
> sonst kann man nämlich nicht nach c:\program files(x86)\ schreiben

Ist das auch bei WinXP schon so? Das (x86) deutete auf ein 64bit BS hin, 
was wohl eher Vista oder 7 sein wird...

von Thomas (Gast)


Lesenswert?

Robert L. schrieb:
> ABER: jede Installation geht nur mit Admin rechten

Ich will ja gerade eine Installation vermeiden. Es ist ein kleines Tool 
welches ich evt. im Internet veröffentlichen möchte. Nicht jeder will 
sich sowas installieren ohne zu wissen ob es wirklich das ist was er 
braucht und ob es sich auch wieder sauber deinstallieren lässt.

Nicht umsonst gibt es ja immer mehr Programme in der "portable" 
Ausführung.



Martin J. schrieb:
> Warum die
> Sourcen nicht portieren?
> Die Funktion hast du ja. Z.B. Delphi/FreePascal, da landet dann alles in
> einer nativen exe ohne ocx Gezumpe. Oder gleich .Net, PHP, perl oder
> oder oder.

Portieren würde ich gerne. Es sind aber etwa 2000 Zeilen Code und 
kurzfristig habe ich dafür keine Zeit. Mit VB6 habe ich viel Erfahrung, 
mit anderen Sprachen dagegen gar nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.