IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Appel de controle ActiveX personnalise depuis javascript


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Appel de controle ActiveX personnalise depuis javascript
    Bonjour,

    Je cherche a appeler un controle ActiveX depuis un script javascript, tout se passant en local sur la machine (pas de probleme reseau).

    J'ai une page HTML qui contient un script javascript qui construit un objet ActiveX personnel et essaie d'appeler une methode dessus :

    var act = new ActiveXObject("MYCONTROL.myControlCtrl.1");
    act.executeCommand(1);

    Lors de l'execution dans Internet Explorer, le script sort une erreur lors de l'appel de la methode en indiquant que celle-ci n'existe pas (je n'ai plus en tete l'intitule exact, mais la recherche sur le site de Microsoft avec le message exact ne donne rien de toutes facons !)

    Pourtant :

    1. Aucun probleme pour executer une methode d'un ActiveX standard de Windows :
    // Marche tres bien
    var t = new ActiveXObject("Scripting.FileSystemObject");
    t.CreateFolder("C:\\Documents and Settings\\aduclert\\Mes documents\\Visual Studio Projects\\folderCreated");
    => je sais appeler un ActiveX.

    2. La construction de l'objet ActiveX semble bien marcher car si je modifie le nom "MYCONTROL.myControlCtrl.1", ca plante a la construction et non a l'appel de executeCommand.
    => IE sait localiser l'ActiveX.

    3. Si je declare un objet du meme controle ActiveX avec une balise <OBJECT> puis que j'appelle la meme methode, ca marche tres bien, preuve que la methode existe, est accessible et fonctionnelle :

    <!-- Marche tres bien -->
    <OBJECT id='myObj' classid="CLSID:F6446799-58CB-4F7E-972D-91993C997A82" codebase="myControl/Release/myControl.ocx">
    </OBJECT>
    <script language="javascript">
    document.write("Result with static object = ");
    document.write(myObj.executeCommand(2));
    document.writeln("</p>");
    </script>
    => La methode executeCommand est fonctionnelle.

    4. Si je vais dans la base de registre, je trouve bien le CLSID indique ci-dessus sous MYCONTROL.myControlCtrl.1 et vice-versa : tout a l'air en ordre (pour autant que je puisse en juger).

    5. Evidemment, j'ai decoche dans IE toutes les options de securite susceptibles de bloquer les controles ActiveX.

    Le controle ActiveX a ete developpe avec Visual Studio en C++ et est tres elementaire. La methode executeCommand ne fait rien d'autre que d'incrementer l'entier passe en argument et renvoyer le resultat !

    Quelqu'un a-t-il une idee sur l'origine du probleme, ou un moyen de comprendre ce qui se passe ?

    Je dois preciser que je n'ai aucune experience de developpement sous Windows (je viens du monde Linux) ... mais le passage par un ActiveX est la seule facon de regler le probleme qui m'interesse.

    Merci.

    Aymeric Duclert

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    Mes compétences en la matiere sont tres limitées, mais voici quelques pistes:
    - jeter un oeil aux outils fournis avec VC++ et qui permettent d'étudier un composant (OLE View, ActiveX Control Test Container...)
    - faire les tests avec une fonction qui n'accepte aucun parametre, pour voir...
    - faire un tour sur codeproject :
    http://www.codeproject.com/com/CompleteActiveX.asp
    http://www.codeproject.com/com/#ActiveX

Discussions similaires

  1. Appeler une fonction Objective C depuis javascript
    Par Slayes dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 07/05/2014, 14h14
  2. [Débutant] appelle d'un fonction c# depuis JavaScript
    Par mohamed-teldj dans le forum ASP.NET
    Réponses: 12
    Dernier message: 31/01/2012, 08h39
  3. appeler une servlet depuis javascript
    Par root76 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 22/05/2007, 11h12
  4. Appel d'une fonction java (dans une applet) depuis javascript
    Par foued_scorpion dans le forum Applets
    Réponses: 2
    Dernier message: 17/01/2007, 10h40
  5. Liveconnect avec Opera 8.5 (appel Java depuis JavaScript)
    Par Gregory3000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2005, 08h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo