Passer des paramètres HTML-> ActiveX [Résolu]

Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
23 septembre 2006
- - Dernière réponse : rvblog
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 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
<HTML>

<OBJECT classid="clsid:6B70585B-9CB2-4FC3-BD7D-81ADB822DB04">

</OBJECT>

</HTML>
Afficher la suite 

19 réponses

Meilleure réponse
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
23 septembre 2006
1
3
Merci
http://www.vbfrance.com/tutoriaux/PASSER-PARAMETRES-HTML-JAVASCRIPT-VERS-ACTIVEX-VB_503.aspx



voilà :) j'ai fait un ptit tutorial :)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Jeskor
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
23 septembre 2006
1
0
Merci
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)
Commenter la réponse de Jeskor
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
Salut Jeskor,

tu n'y es pas tout à fait,

si tu as toujours besoin d'aide, réponds ici, et je reviens.

à+

rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
Commenter la réponse de rvblog
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
23 septembre 2006
1
0
Merci
non c'est bon :) j'y suis arrivé :) merci quand meme :)
Commenter la réponse de Jeskor
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
Je cherche a creer un activex qui sera execute depuis une page html et qui recupere les infos du client comme DD RAM etc...

Le soucis c ke lorske je lance le controle en vb6 tout fonctionne mais sur le net ca plante.

Je pense avoir le bon clsid , on m a conseille sur le forum de passer par un exe activex mais c pas mieux meme en local je n y arrive pas.

Je serai genereux avec celui ki m aidera

pour idee allez voir ma-config.com c exactement ca dont g besoin pour mon projet

MERCI
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
Salut 807934 damyel,

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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
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
   
    Key = 0
    sComputer = Environ("COMPUTERNAME")
   
    sChaine = sComputer & vbCrLf
Text1.Text = sChaine


End Sub

Le code est aussi simple que ca
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
Salut damyel,

nickel.
et le script, et le problème?
à tout de suite.

rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
Le probleme c toujours le meme lorsque je lance le control Activex depuis vb ca me donne les infos.

des que j'arrete l'execution de vb ca ne fonctionne plus

Si le pb vient de la creation du projet sous VB peux tu me dire comment faire STP

nouveau> Projet .....etc
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
oui exactement c ca
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
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
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
Voila je progresse en local ca fonctionne je fais le ftp et la ca ne fonctionne pas ??

si j ouvre en local et qu'apres je saisi l url distante ca marche. ce qui veut dire que l installation de l ocx a distance ne se fait pas.

Voila le code html
<OBJECT name="ActiveX" classid="clsid:BE333CAC-E89E-4AF1-9B45-22DB43664B6A"
codebase="test1611.ocx" ></OBJECT>
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
Salut  807934 damyel,

ftp?

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>
Commenter la réponse de rvblog
Messages postés
13
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
21 novembre 2006
0
Merci
J' ai essaye depuis un poste distant et g un message windows a bloque l installation de ce composant car le publisher est inconnu.

Apparement on tient le bon bout il faut juste que windows accepte mon installation sais tu comment dois je m y prendre ?
Commenter la réponse de damyel
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
0
Merci
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>
Commenter la réponse de rvblog