COM-DLL ohne Registrierung nutzen ?
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
COM-DLL ohne Registrierung nutzen ?
Hi,
normalerweise wird ja eine ActiveX/COM DLL vom Installationsprogramm registriert und danach genutzt.
Kann man das aber auch ohne Registrierung nutzen wie eine normale DLL ?
Hintergrund ist der, dass ich ein Programm nicht installieren will, sondern nur in ein Verzeichnis kopieren.
Diese COM DLL würde ich beilegen, kann ich diese dann aber auch ansprechen ?
PS: Ich habe die DLL noch nicht erworben und wollte VORHER sicher sein sie auch nutzen zu können
normalerweise wird ja eine ActiveX/COM DLL vom Installationsprogramm registriert und danach genutzt.
Kann man das aber auch ohne Registrierung nutzen wie eine normale DLL ?
Hintergrund ist der, dass ich ein Programm nicht installieren will, sondern nur in ein Verzeichnis kopieren.
Diese COM DLL würde ich beilegen, kann ich diese dann aber auch ansprechen ?
PS: Ich habe die DLL noch nicht erworben und wollte VORHER sicher sein sie auch nutzen zu können
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Denke mal an Quick PDF, dort gibst Du ja auch nur die DLL mit.
Wenn Du jetzt die ActiveX DLL nimmst was passiert dann ?
Wenn Du jetzt die ActiveX DLL nimmst was passiert dann ?
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Die DLL, die ich bei QuickPDF verwende ist eben KEINE ActiveX DLL und kann daher einfach so mit ot4xb verwendet werden.
Und bevor ich Zeit und Geld in eine ActiveX/COM DLL Bibliothek stecke, dachte ich mir frage doch mal die die sich mit ActiveX auskennen
Und bevor ich Zeit und Geld in eine ActiveX/COM DLL Bibliothek stecke, dachte ich mir frage doch mal die die sich mit ActiveX auskennen
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9388
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Ohne Registrierung stehen die Funktionen der DLL nicht in der COM-Schnittstelle zur Verfügung. Die DLL veröffentlicht ihre Funktionen auch nicht wie eine normale DLL, sondern nur über die Schnittstelle.
Deine Applikation kann aber prüfen, ob die Bibliothek zur Verfügung steht, indem sie beispielsweise die Registry nach der CLSID oder GUID scannt (Funktionen hierzu gibt es m.E. im Forum). Ist sie nicht vorhanden, ließe sie sich beispielsweise durch einen Batchaufruf von REGSVR32 installieren. Dafür sind jedoch in aller Regel Adminrechte nötig.
Deine Applikation kann aber prüfen, ob die Bibliothek zur Verfügung steht, indem sie beispielsweise die Registry nach der CLSID oder GUID scannt (Funktionen hierzu gibt es m.E. im Forum). Ist sie nicht vorhanden, ließe sie sich beispielsweise durch einen Batchaufruf von REGSVR32 installieren. Dafür sind jedoch in aller Regel Adminrechte nötig.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Danke TOM,
das hatte ich befürchtet, wollte aber sicher gehen.
Adminrechte oder Aufruf von RegSrv32 möchte ich genauso vermeiden, wie die träge Ausführungsgeschwindigkeit von Xbase++ bei Active X
das hatte ich befürchtet, wollte aber sicher gehen.
Adminrechte oder Aufruf von RegSrv32 möchte ich genauso vermeiden, wie die träge Ausführungsgeschwindigkeit von Xbase++ bei Active X
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: COM-DLL ohne Registrierung nutzen ?
hm ... was war zuerst da : DLL oder OCX ...Tom hat geschrieben:Ohne Registrierung stehen die Funktionen der DLL nicht in der COM-Schnittstelle zur Verfügung.
Die DLL veröffentlicht ihre Funktionen auch nicht wie eine normale DLL, sondern nur über die Schnittstelle.
OCX als activeX bedeutet du nur das ich über die iDispatch COM Schnittstelle kommunizieren "kann"
angenommen WMP.OCX, was ja für VB als activeX gedacht ist, dessen Grösse ist nur 20KB.
angesprochen wird nun die WMP.DLL (4.8MB) was man unter C# direkt macht.
anders nun bei Codejock wo die OCX auch gleichzeitig die DLL ist.
wenn du OCX und DLL geliefert bekommst würde ich mir die Grösse der OCX ansehen.
wenn die OCX wie bei WMP so klein ist dann enthält die meisten "nur" die COM Schnittstelle ( für VB User )
! Note : unter Win 7 / 8 gibt es ja kein WMP.OCX mehr aber trotzdem ist die CLSID vorhanden und gültig.
Es muss also evtl. die CLSID von der OCX in der Registry eingetragen sein damit die DLL funktioniert !
wenn du mit der aktuellen ot4xb arbeitest kannst du doch die eingebauten Function nutzenbrandelh hat geschrieben:wie die träge Ausführungsgeschwindigkeit von Xbase++ bei Active X
Pablo Botella
2. Oktober 2013
Re: DispHPR / ot4xb
>how to use DispHPR inside ot4xb ?
I've just linked the disphpr module inside ot4xb
Functions:
_DH_CREATEOBJECT , _DH_GETOBJECT , _DH_CREATEOBJECTEX , _DH_GETOBJECTEX , _DH_CALLMETHOD , _DH_PUTVALUE , _DH_PUTREF , _DH_GETVALUE , _DH_INVOKE , _DH_INVOKEARRAY , _DH_CALLMETHODV , _DH_PUTVALUEV , _DH_PUTREFV , _DH_GETVALUEV , _DH_INVOKEV , _DH_ENUMBEGIN , _DH_ENUMBEGINV , _DH_ENUMNEXTOBJECT , _DH_ENUMNEXTVARIANT , _DH_TOGGLEEXCEPTIONS
will be used exactly like @disphpr:func( params... )
so @disphpr:dhCreateObject( params ..... ) will be _dh_CreateObject( params ..... )
>Old Syntax does not work ?
still work but you need to keep the disphrp.dll
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15701
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Hallo Jimmy,AUGE_OHR hat geschrieben:wenn du mit der aktuellen ot4xb arbeitest kannst du doch die eingebauten Function nutzenbrandelh hat geschrieben:wie die träge Ausführungsgeschwindigkeit von Xbase++ bei Active XPablo Botella
2. Oktober 2013
Re: DispHPR / ot4xb
>how to use DispHPR inside ot4xb ?
I've just linked the disphpr module inside ot4xb
Functions:
_DH_CREATEOBJECT , _DH_GETOBJECT , _DH_CREATEOBJECTEX , _DH_GETOBJECTEX , _DH_CALLMETHOD , _DH_PUTVALUE , _DH_PUTREF , _DH_GETVALUE , _DH_INVOKE , _DH_INVOKEARRAY , _DH_CALLMETHODV , _DH_PUTVALUEV , _DH_PUTREFV , _DH_GETVALUEV , _DH_INVOKEV , _DH_ENUMBEGIN , _DH_ENUMBEGINV , _DH_ENUMNEXTOBJECT , _DH_ENUMNEXTVARIANT , _DH_TOGGLEEXCEPTIONS
will be used exactly like @disphpr:func( params... )
so @disphpr:dhCreateObject( params ..... ) will be _dh_CreateObject( params ..... )
>Old Syntax does not work ?
still work but you need to keep the disphrp.dll
hast du mal Beispiele mit Word und / oder Excel und der ot4xb - ActiveX Schnittstelle ?
Ist die wirklich schneller als die standardmäßig eingebaute ?
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: COM-DLL ohne Registrierung nutzen ?
Nein ... das lohnte nicht bei den "kleinen" Mengen ... aber mit Outlook und Mappointbrandelh hat geschrieben:hast du mal Beispiele mit Word und / oder Excel und der ot4xb - ActiveX Schnittstelle ?
Ist die wirklich schneller als die standardmäßig eingebaute ?
obwohl man mit DispHPR activeX ansprechen kann muss man die Einschränkung machen das es nur funktioniert wenn man ein "Fenster" hat
d.h. WMP, was als Overlay oder DirectX läuft, kann man damit zwar ansprechen aber es kommt "nichts zurück".
DispHPR ist also "nur" ein Ersatz für CreateObject() und nicht für XbpActiveXControl()
p.s. Geschwindigkeit : je nach Einsatzzweck Faktor 5 - 40x schneller als Xbase++
gruss by OHR
Jimmy
Jimmy
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Hallo Hubert,
es gibt eine Möglichkeit die ActiveX-OCX/DLL über Manifest einzubinden, so dass die Installation bzw. Registrierung nicht mehr notwendig ist.
Ich weiß nicht, wie man den Manifesteintrag manuell erstellen könnte.
Ich mache es immer mit MS Visual Studio C# (die kostenlose Version sollte reichen):
- Projekt erstellen.
- Verweis auf das notwendige ActiveX hinzufügen.
- Eigenschaften des Verweises aufrufen
- "Isoliert" auf TRUE setzen.
- Projekt kompilieren.
In der erzeugten Manifest-Datei findest du einen Bereich "<file name ... </file>" den du in deine Manifestdatei einfügen kannst:
Dieser generierter Code für die Manifestdatei ersetzt die Windows-Registrierung. Die für das Projekt benötigte ActiveX-Dateien liegen dann auch im VS-Verzeichnis, die du in deinen Projektverzeichnis übernehmen kannst.
es gibt eine Möglichkeit die ActiveX-OCX/DLL über Manifest einzubinden, so dass die Installation bzw. Registrierung nicht mehr notwendig ist.
Ich weiß nicht, wie man den Manifesteintrag manuell erstellen könnte.
Ich mache es immer mit MS Visual Studio C# (die kostenlose Version sollte reichen):
- Projekt erstellen.
- Verweis auf das notwendige ActiveX hinzufügen.
- Eigenschaften des Verweises aufrufen
- "Isoliert" auf TRUE setzen.
- Projekt kompilieren.
In der erzeugten Manifest-Datei findest du einen Bereich "<file name ... </file>" den du in deine Manifestdatei einfügen kannst:
Code: Alles auswählen
<?xml version="1.0" encoding="utf-8"?>
<assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="WinOCXManifest.exe" version="1.0.0.0" type="win32" />
<file name="richtx32.ocx" asmv2:size="260096">
<hash xmlns="urn:schemas-microsoft-com:asm.v2">
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>mw6kQq+efi3RmgCf4N0kR+niGDWtmCAfZ3wwj+m/z3o=</dsig:DigestValue>
</hash>
<typelib tlbid="{3b7c8863-d78f-101b-b9b5-04021c009402}" version="1.2" helpdir="C:\Windows\HELP\RTFBox98.CHM" resourceid="0" flags="CONTROL,HASDISKIMAGE" />
<comClass clsid="{3b7c8860-d78f-101b-b9b5-04021c009402}" threadingModel="Apartment" tlbid="{3b7c8863-d78f-101b-b9b5-04021c009402}" progid="RICHTEXT.RichtextCtrl.1" description="Microsoft Rich Textbox Control 6.0 (SP4)" />
</file>
</assembly>
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: COM-DLL ohne Registrierung nutzen ?
Hallo, Andreas -
das ist ja mal ein ganz wertvoller Hinweis! Danke dafür!
das ist ja mal ein ganz wertvoller Hinweis! Danke dafür!
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: COM-DLL ohne Registrierung nutzen ?
Ich habe meine Beschreibung angepasst und in Wissensbasis gepostet.