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 :

Dérouler combobox dans activeX webbrowser


Sujet :

Windows

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut Dérouler combobox dans activeX webbrowser
    Bonjour,

    Je cherche à ouvrir (dérouler) une combo dans un activex webbrowser par le code (API peut être). Je suis preneur en tous langages. J'ai essayer avec le F4 et le entrée sur la combo mais elle ne se déroule pas. J’ai essayé l'api sendmessage avec la constante cb_showdropdown mais cela ne fonctionne pas non plus.
    Quelqu'un connaitrait un raccourci ou un code possible dans un langage quelconque?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 379
    Points
    20 379
    Par défaut
    D'après les recherches de Médinoc , IE utilise des controles qui n'ont pas de HWND et fonctions non documentées
    Donc il est fort à parier que cela ne soit pas possible.
    As-tu essayé avec Spy++ de trouver le handle du combo box ?

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pas si non-documenté que ça...

    À partir de l'interface IWebBrowser2, tu peux récupérer une IHTMLDocument3 (propriété Document), par laquelle tu peux utiliser la fonction getElementById() pour récupérer ta combobox si elle a un Id ou un nom...
    Puis, tu peux faire un peu ce que tu veux sur l'IHTMLElement obtenue...

    Et tout ça, je l'ai juste su en regardant au petit bonheur ce que me propose l'interface IWebBrowser2...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Merci pour vos reponses.
    Le nom et l'id de la combo je les connais, si avec IHTMLElement j'utilise le membre click, cela déroule la combo seulement si une methode onclick() a été déclarer dans la page web. Seulement si je n'ais pas cette méthode dans la page web, je ne sais pas comment dérouler ma combo. A moins que je n'utilise pas les bonnes méthodes ou membre. Dans un logiciel j'ai vu qu'il faisait cela. Peut etre avec autre chose que le webbrowser ou pourriez vous me dire ou je peux me tromper?
    Je ne sais pas comment faire avec spy++ pour trouver le handle de la combo. Je n'ais jamais utilisé spy++ donc si vous pourriez m'expliquer rapidement comment je pourrez voir si ma combo a un handle ou non.

    Merci d'avance

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    La combo n'a pas de handle depuis IE7 (elle en avait un sous IE6).

    À partir de IE7, tu peux dérouler la combobox: Tu dois demander une interface IHTMLSelectElementEx dessus (avec QueryInterface) et appeler sa méthode ShowDropdown...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Merci de votre réponse mais la je suis collé...Dans ma référence mshtml je n'ais pas l'interface IHTMLSelectElementEx. Est ce normal?
    J'aimerai faire cela en windev, pensez vous que c'est possible?

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si ta doc est trop vieille, c'est possible que ce soit normal. Comme je l'ai dit, IHTMLSelectElementEx nécessite IE7, donc c'est plutôt récent.

    Quant à Windev, aucune idée, 'sais pas comment ça fonctionne.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    En fait j'ai regardé la version de mon fichier mshtml.dll, il semblerai que ce soit la derniere (version:7.0.6000.16608). De plus, j'ai IE7 sur mon poste.
    Ok pour windev.

  9. #9
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Quelqu'un aurait une version plus récente de Mshtml.dll?Cela expliquerer mon probleme et me permettrer d'approfondir mes recherches sur une MAJ possible de ce fichier. De plus, est ce bien la dll qu'il me faut mettre à jour car j'ai aussi un fichier TLB version 7.0.5730.13 ?

    Merci d'avance

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attends, on ne s'est peut-être pas compris.

    Qu'appelles-tu ta "référence" de mshtml.dll ? Comment es-tu sûr que la DLL elle-même est trop vieille?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Lorsque je suis sur le site de microsoft, IHTMLSelectElementEx est dans la référence mshtml partie "Interfaces and scripting objects".
    Dans mes références ou assembly sous VB.net et Windev, Microsoft.mshtml s'appui sur mshtml.dll qui est dans "windows/system32".

    Je ne sais pas si ma DLL est trop vieille ou pas mais je n'ais pas trouvé de fichier mshtml.dll plus récent au niveau des versions sur internet. La version, je l'obtient en regardant dans les propriétés de mshtml.dll qui est dans "windows/system32".

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ta version de mshtml.dll est encore plus récente que mon IE7 (7.0.5730.11), donc elle n'est absolument pas "trop vieille".

    Quant à VB et Windev, je ne sais pas trop.

    Ma version de mshtml.tlb est "version 4.0, assembly Microsoft.mshtml v7.0.3300.0" et elle contient l'interface IHTMLSelectElementEx. Par contre, étrangement, elle n'est pas duale (contrairement aux autres), donc sans doute pas utilisable depuis VB6 (mais elle devrait être utilisable depuis .Net).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Comment sait tu si elle est duale ou non?
    moi dans mon fichier mshtml.tbl j'ai la version 7.0.5730.13 par contre je sais pas si je confont pas tout car j'ai aussi un dossier assembly dans Windows avec Microsoft.mshtml version 7.0.3300.0.

    Merci de me consacrer autant de temps...
    Sa fait plusieurs semaines que je cherche à dérouler cette combo donc j'analyse toute possibilité...

    Si jamais je ne trouve aucune différence entre ces fichiers, pense tu qu'à partir d'un élement en C ou C++ je puisse dérouler ma combo qui est dans une application externe développée en windev. Je sait que tu n'est pas expert en windev mais vu tout ce que tu connait, tu doit etre developpeur C ou C++ donc tu peut peut être m'orienté vers une solution externe...

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est simple, quand je lis ces specs avec OLEVIEW.EXE, elle n'est pas marquée duale, et n'apparait pas dans la liste des dispinterfaces...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    pense tu qu'à partir d'un élement en C ou C++ je puisse dérouler ma combo qui est dans une application externe développée en windev. Je sait que tu n'est pas expert en windev mais vu tout ce que tu connait, tu doit etre developpeur C ou C++ donc tu peut peut être m'orienté vers une solution externe...

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    lol merci pour cette réponse mais je vois pas la solution dedans...
    Peut tu m'éclaire stp sur les solutions possibles.

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    pompomthebest : Désolé, je ne sais pas comment on passe une interface COM de Windev à une fonction C ou C++. Cela doit être dans ta doc de Windev.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    ok, pas grave, si quelqu'un sait faire cela ou pense avoir une idée, je prend toutes idées pour le réaliser. Lucas69 au lieu de parler sur ce que j'ai dit tu ferait mieux de répondre au sujet pour faire avancer mes recherches. Ta remarque ne m'est dans aucun cas utile...

    Merci pour toutes idées ou début d'idées...

Discussions similaires

  1. [AC-2007] .gif dans un formulaire via ActiveX WebBrowser
    Par salent9 dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/05/2014, 11h35
  2. Réponses: 0
    Dernier message: 22/02/2013, 08h06
  3. ActiveX webBrowser dans Etat Access
    Par xbb12 dans le forum IHM
    Réponses: 2
    Dernier message: 28/08/2008, 10h53
  4. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12
  5. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36

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