Jeskor
Messages postés4Date d'inscriptionlundi 3 mai 2004StatutMembreDernière intervention23 septembre 2006
-
18 août 2006 à 09:56
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 2012
-
16 nov. 2006 à 20:51
Bonjour a tous,
Je suis en train de créer un ActiveX et je n'arrive pas a faire passer des paramètres a partir de l'HTML/Javascript à l'activeX
Exemple :
J'ai un activeX qui a besoin d'un nom de fichier, ce dernier est accessible dans la page, je l'ai inséré dans une balise de type mais je ne voit pas comment le récuperer du coté de l'activeX
Jeskor
Messages postés4Date d'inscriptionlundi 3 mai 2004StatutMembreDernière intervention23 septembre 20061 18 août 2006 à 15:09
Bon j'avance j'avance :c)
Ce que j'ai compris :
On passe les paramètres en HTML avec la balise PARAM
Ensuite dans notre activeX il nous faut de quoi les receptionner :
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_Toto = PropBag.ReadProperty("TOTO", "valeur_par_defaut")
End Sub
Ainsi que la suivante pour les prendre en compte :
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("TOTO", m_Toto, "valeur_par_defaut")
End Sub
Et normalement, après je peux considérer que la variable m_Toto contient ce que j'ai passé dans PARAM ou "valeur_par_defaut" Si je n'ai rien passé ...
Seulement elle ne contient rien, quelqu'un voit'il ce que j'ai oublié ?
Merci d'avance sur vos réponses (même si ce ne sont que des axes à chercher)
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 23 sept. 2006 à 10:36
dac,
mais si tu veux, tu peux mettre la solution, ici, et en accepter la réponse, comme ça, quelqu'un qui cherche la même chose que tu cherchais a une chance de trouver la réponse (sans attendre aussi longtemps que toi, mais il saura à qui il le doit).
sinon, bravo pour t'être débrouillé tout seul, et continue bien :)
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
je suppose que tu es allé voir le tuto de =271680 Jeskor?
Ensuite, mets un p'tit un bout de code de ce que tu fais en HTML, un bout du script qui manipule ton AX, et, éventuellement, un bout de ce qu'il y a (d'important) dans l'AX.
Dis en plus de ce que tu cherches à faire, et du contexte dans lequel tu souhaites le faire : language de script ? "sur le net ça plante", quel serveur Web, qu'est-ce qui plante? qu'est-ce que ça dit?
Enfin, "recupere les infos du client comme DD RAM", qu'utilises-tu dans ton AX? a-t-il des dépendances (contrôles ou références utilisés par celui-ci), ou c'est juste des appels API?
Voilà pour l'instant.
à+
PS : j'oubliais, sur VBF, c'est rare que lorsque tu invites à aller sur un site, on y aille, car le plus simple (et le plus utile pour ceux qui ont le même problème que toi), c'est de poster le code ici, et pas ailleurs! C'est aussi pour cela que l'on aime VBF, tout s'y trouve, les problèmes et leurs solutions.
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
damyel
Messages postés13Date d'inscriptiondimanche 25 juin 2006StatutMembreDernière intervention21 novembre 2006 15 nov. 2006 à 10:54
HTML
<HTML><OBJECT classid="clsid:F81C66A3-2C7F-49C6-B73A-D612E816F9E8">
</OBJECT></HTML>
VB
Option Explicit
Public sComputer As String
Public Key As Long
Public retour As String
Private Sub UserControl_Initialize()
Dim sChaine As String
Dim sRetour As String
Dim Key
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 15 nov. 2006 à 12:18
Bon, bon,
il m'apparait presque évident que tu ne maitrises pas forcément la création d'Active X, ou alors tu t'exprimes mal (ou enfin, c'est moi qui ne comprends rien). Ceci dit, ce n'est pas un défaut, je vais essayer de t'expliquer, dans la mesure de ce que je crois que tu ne connais pas, au vu de ce que tu dis.
Tu dis "lorsque je lance le control Activex depuis vb ca me donne les infos", veux-tu dire que tu as créé un projet ActiveX, et que lorsque tu l'exécutes, VB lance l'Internet Explorer (ou ton navigateur par défaut), affiche une page HTML contenant le code que tu présentais dans ton précédent message, et que donc, ton contrôle AX apparait, renseigné. Puis tu dis "des que j'arrete l'execution de vb ca ne fonctionne plus", cela signifie-t-il que le navigateur n'affiche plus ton contrôle AX?
Si c'est le cas, c'est normal, et dis moi le en réponse, pour que je continue à t'expliquer.
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 15 nov. 2006 à 13:17
Dac,
il faut comprendre, dans cette manip, que ton contrôle AX n'est pas vraiment publié en tant que contrôle autonome (ocx), qu'il n'existe en "instance exécution" que par le biais de VB, qui se charge de le registrer en temps réel, et de le déregistrer dès que tu arrêtes VB.
Pendant que VB le registre en temps réel, il crée un CLSID qu'il utilise dans une page HTML réduite à sa plus simple expression, cad un balise objet utilisant le CLSID précité, et il affiche cette page avec le navigateur par défaut (parce que c'est ce que lui disent ses options de projet, onglet Débugage, valeur "démarrer le navigateur avec l'URL" et case à cocher "utiliser le navigateur existant").
Pour publier ton contrôle, il te faut le compiler (menu fichier, élément créer machin.ocx), avec l'option de débugage "Attendre la création de composant", et l'option "compatibilité des projets" (onglet composant).
Tu dois maintenant registrer ton contrôle( menu démarrer de Windows, exécuter : "regsvr32 c:\CheminQuiVaBien\machin.ocx")
Tu dois ensuite récupérer le CLSID, faire ta page HTML toi-même, et exécuter cette page sous ton navigateur favori.
Quand tu veux faire une modification de ton contrôle, je te conseille de le déregistrer auparavant, ça marche sans, mais c'est plus propre avec (même ligne de commande que pour le registrer, mais avec le commutateur -u à la fin).
voilà, essayes ça et tiens moi au courant.
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
damyel
Messages postés13Date d'inscriptiondimanche 25 juin 2006StatutMembreDernière intervention21 novembre 2006 15 nov. 2006 à 14:13
MERCI BEAUCOUP
c'est exactement ce qu il me manquait apparement.
Juste une derniere question comment recuperer le clsid ???
J'ai recupere la cle d un repertoire de la base de registre pui g fait ma page html et en testant le navigateur a plante
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 15 nov. 2006 à 14:49
Oui,
dans la base de registre tu cherches le ProgID de ton ActiveX (nom du projet + nom du contrôle, donc pour le projet Projet1 et le contrôle Machin, le ProgI est Projet1.Machin), et tu dois trouver une clé CLSID, pour laquelle tu vas récupérer la valeur de la chaine "(Par défaut)".
Attention, dans la balise object HTML, il ne faut pas mettre les accolades.
à+
PS: si la réponse te convient, n'oublies pas d'accepter la réponse.
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
Il faut penser que le client distant doit pouvoir résoudre n'importe quel chemin de là où il se trouve. En l'occurence, je ne suis pas sûr, mais il me semble que la propriété codebase devrait contenir une URL vers l'ocx à télécharger, genre :
codebase =http://www.monsite.fr/controls/machin.ocx et si tu veux que le client détecte qu'il a le contrôle, mais pas la bonne version, c'est du genre :
codebase=http://www.monsite.fr/controls/machin.ocx#ver=1,0,0,0
Essayes, et dis-moi.
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 16 nov. 2006 à 20:51
Vérifies les paramètres de sécurité du navigateur du client.
Il faut :
- qu'il accepte le téléchargement des ActiveX non signés (ou éventuellement qu'il demande à l'utilisateur s'il veut bien autoriser le téléchargement).
- qu'il autorise l'initialisation et l'exécution des scripts qui servent à manipuler ces AX (éventuellement, car je ne sais pas si tu en utilises).
Outils>>Options Internet onglet Sécurité, soit niveau personnalisé sur internet, soit sur l'intranet, élément ActiveX contrôles et plugs-ins, et plus bas dans l'arborescence, élément Scripting.
voilà qui devrait aider,
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>