Feststellen ob ein ActiveX am Rechner verfügbar ist
-
Ich möchte in meinem Dialogfenster das Adobe PDF-ActiveX als Vorschaufenster verwenden.
Nur kann ich mir nicht sicher sein dass dieses ActiveX verfügar ist.Welches ist der gebräuchliche Weg sicher zu gehen dass das ActiveX auf dem Rechner installiert ist?
-
In der Registry nachgucken?
-
Instanziieren?
-
Die Frage ist ja auch, ob geprüft werden soll ob es vorhanden ist oder auch ob es funktionsfähig ist. Kann ja sein das in der Registry entsprechende Einträge vorhanden sind aber das ActiveX nicht lauffähig weil z.B. teilweise gelöscht etc.
Also würde ich es am einfachsten mit CreateInstance() instazieren und schauen ob dabei IUnknown zurückgegeben wird, das sollte reichen. Ein ActiveX basiert ja auf COM.
-
Softwaremaker schrieb:
Als würde ich es am einfachsten mit CreateInstance() instazieren und schauen ob dabei IUnknown zurückgegeben wird, das sollte reichen. Ein ActiveX basiert ja auf COM.
Ja, und das dauert dann bei Acrobat erstmal 2 Minuten. Ich würd einfach schauen, ob das Objekt in der Registry registriert ist. Wenns kaputt ist, kann man das immer noch später abfangen.
-
Wenn man keinen Funktionstest braucht, müsste ProgIDFromCLSID() als Test ausreichen.
-
Hallo ,
es geht deiner App nichts an was installiert ist. Du kannst
aber guter Hoffnung sein, das für die jeweilige Endung etwas
registriert ist. Außerdem nutzen andere FreePDF.Das machst Du so:
#define TRYOPEN1 "MeinPdf.pdf" #define TRYOPEN2 "google.de" SHELLEXECUTEINFO exi={sizeof(SHELLEXECUTEINFO),0,0,0,TRYOPEN,"",0,0,0,0,0,0,0,0,0};ShellExecuteEx(&exi);
-
Das hat jetzt gar nichts mit seiner Frage zu tun, die völlig berechtigt war. Er hat doch geschrieben, dass er das ActiveX Control in seinem eigenen Programm benutzen will, es ist interessiert doch keinen hier, was für ein Anzeigeprogramm der Benutzer normal benutzt oder mit welchem Programm irgendwelche Endungen verknüpft sind.