ActiveX VB pour IE

deniscoincoin Messages postés 5 Date d'inscription mardi 18 novembre 2003 Statut Membre Dernière intervention 8 juillet 2009 - 8 juil. 2009 à 12:56
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 9 juil. 2009 à 18:27
Bonjour,


J'ai besoin de créer un activex qui sera utilisé sous IE.
J'arrive bien à créer un activex sous VB et à l'utiliser sous VB ou encore sous windev mais je n'arrive pas à l'utiliser sous IE : je n'arrive pas à faire appel aux fonctions de mon activex.
J'arrive bien à initialiser l'activex sous IE, pour preuve IE me demande de confirmer que je souhaite bien utiliser cet activex, et il ne se produit aucune erreur.
Mais aprés, comment accéder aux procédures / fonctions de mon activex  ?


Voici comment l'activex est écrite sous VB :
Option Explicit




Public MaVarDeTest As Long





Public Sub SubDeTest()
End Sub





Public Function FunctTest() As String
End Function



J'ai tenté de créer l'activex en dll ou en ocx au moyen de la création du projet en "ActiveX dll" ou en "ActiveX Control" , quelle que soit la solution, je n'arrive pas à appeler les fonctions / procédures de l'activex.


En javascript, l'activex est déclaré ainsi :
<object classid="clsid:7F867A00-41C0-4AB4-A0AD-EDAE87E4FF59" id="MonActiveX" name="MonActiveX" Width="100px" Height="100px">
</object>
Je n'ai pas encore fait le lien vers le cab que je créerai à la fin.
Et ca marche puisque l'explorateur demande confimation qu'on veut bien utiliser cet activex.


Puis j'instancie l'activex :
try {
 _MonAX = document.getElementById("MonActiveX");
} catch (e) {
 alert("erreur : " + e.description);
}
Ici pas de problème.


Mais aprés, comment accéder à mes fonctions / procédures ?
_MonAX.SubDeTest();  ca ne marche pas


Le pire dans tout ca c'est que j'arrive bien à me servir de cet activex sous VB ou encore sous windev, alors, elle est où l'astuce ??


Merci pour vos idées

5 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 juil. 2009 à 13:15
Bonjour,
quelques explications basiques ici

Cordialement [mon Site] [M'écrire] Bul
0
deniscoincoin Messages postés 5 Date d'inscription mardi 18 novembre 2003 Statut Membre Dernière intervention 8 juillet 2009
8 juil. 2009 à 13:54
Merci pour ta réponse Bul3

J'ai suivi ton exemple à la lettre, mais j'ai un soucis, il se produit une erreur javascript : "un composant Activex ne peut pas créer un objet"

J'avais bien essayé ce genre de méthode, et j'avais effectivement ce message d'erreur aussi, donc, je suis toujours coincé.
Comment tu fais pour éxécuter ton exemple sans erreur  ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 juil. 2009 à 14:26
>>"un composant Activex ne peut pas créer un objet"
tu n'as pas autorisé les activeX dans IE
Outils / options Internet / Sécurité / intranet local / personnaliser le niveau
et dans la liste déroulante cocher ce qui convient dans "Contrôles ActiveX et plug-ins"
ça doit suffire

intranet local   car c'est trop dangereux de les autoriser "ailleurs" !
sauf dans les sites privilégiés, et perso, j'en ai 2 :  microsoft et le mien
aucun autre
0
deniscoincoin Messages postés 5 Date d'inscription mardi 18 novembre 2003 Statut Membre Dernière intervention 8 juillet 2009
8 juil. 2009 à 17:29
Merci Bul3 pour tes conseils.

Bon si il y a un soucis de sécurité, ce que je cherche à faire ne va pas aller car c'est justement les pb de sécurité que je cherche à contourner.

Je te résume mon besoin, tu sauras surement me conseiller sur le mode opératoire :
- Pour une appli pro qui tourne sous IE, j'utilise une dll fournie par le vendeur d'un scanner, ainsi je pilote le scanner.
- Une fois que le scanner a fini de bosser, j'ai besoin de récupérer les images pour les traiter et les envoyer vers mon serveur.
- Je ne souhaite pas faire cela en javascript car là il y a un pb de sécurité il faudrait que le client descende trop la sécurité de sa machine.
- J'ai donc besoin d'une petite dll (ou activex ou autre) qui me permette de lire/ecrire/supprimer des fichiers sur le disque dure du client.
- Ainsi, le client accepte de faire tourner la dll sur sa machine, il me fait confiance et tout va bien.

La dll du scanner fonctionne très bien sous IE, et je voudrai une dll perso qui fonctionne de la même manière.
La dll du scanner est appelée ainsi :
<object classid="clsid:7F867A00-41C0-4AB4-A0AD-EDAE87E4FF59" id="LeScanner" name="LeScanner">
</object>
puis
try {
 _LeScanner = document.getElementById("LeScanner");
} catch (e) {
 alert("erreur : " + e.description);
}
Et puis j'appelle les fonctions dont j'ai besoin en faisant tout simplement :
_LeScanner .SubDeTravail(); 

Voilà.
Comment puis je faire une dll, ou activeX ou autre, pour avoir un fonctionnelment aussi simple que cela.

En te remerciant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
9 juil. 2009 à 18:27
pas vu le message....
au lieu d'un .htm crée un .hta
(  renomme tout simplement ton .htm en .hta
   et pour lancer double click dessus )
ça se comporte comme un exécutable, plus de messages d'avertisements
pour les activeX
0
Rejoignez-nous