Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Plugins für die Eigene App - Wie? -- VB6

mike_2006 / 8 Antworten / Baumansicht Nickles

Hallo,
ich stehe bei meiner fast fertigen App vor einem Problem:
Ich hatte vor, eine Möglichkeit für Plugins zu machen.
Das sieht so aus:
Es wird ein ActiveX-Steuerelement, dessen Location, etc. bekannt ist,
zur Laufzeit geladen bzw. eingefügt.
(evtl.:) Es bekommt dann das hwnd Handle einer PictureBox um sich zeigen zu können.
Soweit so gut.
Die zwei Funktionen CreateObject und GetObject wollen dies bei mir nicht so richtig: Immer wieder:
... kann nicht durch ActiveX eingefügt werden...

Wie kann ich nun zur Laufzeit ein ActiveX.ocx in mein Programm einladen??? (Ohne die EXE zu verändern :D)

MfG,
Michael

bei Antwort benachrichtigen
T-Rex mike_2006 „Plugins für die Eigene App - Wie? -- VB6“
Optionen

Schau Dir mal folgendes an:
Tutorial: Plugin erstellen
und als Ergänzung/Erweiterung
Erweitertes Beispiel zum Tutorial: Plugin erstellen

 GrüßeT-Rex 
bei Antwort benachrichtigen
PaoloP T-Rex „Schau Dir mal folgendes an: Tutorial: Plugin erstellen und als...“
Optionen

Das Problem ist ja das Er ein visuelles Control unbekannterweise dazu laden will.

Ich meine mal einen Quickhack irgendwo gesehen zu haben wie man eine tlb dynamisch lädt.
Wenn Er das hinbekommt könnte er möglicherweise über die ControlsAuflistung das Teil via Add hinzufügen.
Prinzipiell aber wohl eher unwahrscheinlich :/

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
mike_2006 PaoloP „Das Problem ist ja das Er ein visuelles Control unbekannterweise dazu laden...“
Optionen

Hallo,

aaalso:
Die Seite von ActiveVB hilft mir schon einiges weiter^^

Im prinzip (hätte ich schreiben sollen-.-) muss es nicht zwingend ein ocx sein,
so etwas wie das Beschreibene ist auch schon ein guter Anfang, aber:
Ist es auch möglich, dass das Plugin ein eigenes Formular hat?
Als Beispiel:
Das Projekt simple.vbp hat jetzt anstatt von drei Classes jetzt drei Forms.
Ich rufe das Plugin auf, gebe ihm den hwnd Handle einer PictureBox und das Plugin wird in der PictureBox angezeigt. Geht das?
Wie müsste dann der Befehl von CreatObject aussehen?
obj=CreateObject(FormClass(...)) ?

Wenn das ginge, wär's super ^^

MfG,
Michael

EDIT:
Habe mich jetzt mit Modifikationen herumgezanckt -
eine DLL habe ich schon, jedoch muss diese ja bekanntlich registriert sein...
Mein regsvr32 sagt mir immer so ne Fehlermeldung:
... WUrde geladen, aber der DLLInstall-Eingangspunkt wurde nicht gefunden. Stellen Sie sicher, dass die Datei gültig ist.
... DAs kapiere ich nun nicht...
Welches dings muss ich denn dann nehmen (meine DLL hat keinen integrierten installer - jedenfalls net von mir! :D)

bei Antwort benachrichtigen
PaoloP mike_2006 „Hallo, aaalso: Die Seite von ActiveVB hilft mir schon einiges weiter Im prinzip...“
Optionen

Also meine VB-Zeit ist nun auch schon wieder einige Zeit her aber du kannst ein Plugin dazu zwingen sein Handle bzw.
das Handle seines Darstellungsfensters herauszugeben und nach dem Laden der PictureBox unterordnen entweder mit VB-eigenen Mitteln ( ging irgendwie) oder mit der Api-Funktion SetParent. Das Plug-In sollte danach mit den Dimensionen der PictureBox darüber informiert werden um seine Auflösung anpassen zu können. Über ein Interface kann man das Plug-In zwingen diese Funktionen mitzubringen. Irgendwie so in der Richtung würde ich das wohl machen. Viel Erfolg.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
mike_2006 PaoloP „Also meine VB-Zeit ist nun auch schon wieder einige Zeit her aber du kannst ein...“
Optionen

gut, werd das mal testen^^

thx

bei Antwort benachrichtigen
mike_2006 Nachtrag zu: „Plugins für die Eigene App - Wie? -- VB6“
Optionen

Funktionier denn das:

dim meinocx as usercontrol
meinocx.hwnd=picbox.hwnd

Wo kann man da den ocxnamen angeben?
Oder passiert dann schlicht nix?
Wär ne prima, einfache idee^^

MfG,
Michael

bei Antwort benachrichtigen
T-Rex mike_2006 „Noch ne möglichkeit?“
Optionen
Funktionier denn das:
Es wird funktionieren, aber ob das Ergebnis dabei herauskommt, welches Du haben möchtest, ist die Frage.
Was genau möchtest Du denn machen?

Ist es auch möglich, dass das Plugin ein eigenes Formular hat?
Ja, möglich ist es. Hast Du es ausprobiert? Was passierte dabei?

Die DLL (das Plugin) brauchst Du nicht bei der Installation zu registrieren, das kannst Du zur Laufzeit machen. Wieder ActiveVB:
Tipp 0242: ActiveX-Komponenten zur Laufzeit registrieren
Wenn Du den genannten Fehler erhältst, ist irgendetwas faul in Deinem Code.
 GrüßeT-Rex 
bei Antwort benachrichtigen
mike_2006 T-Rex „ Es wird funktionieren, aber ob das Ergebnis dabei herauskommt, welches Du haben...“
Optionen

Tja, das werde ich dann ja sehn^^

Wie kann ich dem guten VB denn sagen, welches Formular laden soll?

Das eschriebene Tut ... bin ich zu faul für... kommt bei mir in die Kat "Notlösung"^^
Wissenschaftler - auch Programmierer - sind bequeme Leute :P

Meine MSDN installation ist fehlgeschlagen - deßhalb funktioniert der hilfe Knopf net...

MfG,
Michael

bei Antwort benachrichtigen