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

Macros et VBA Excel Discussion :

Declarer un control exterieur comme objet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Par défaut Declarer un control exterieur comme objet
    Bonjour,

    je cherche a contrôler un logiciel via vba.

    Ca marche bien enfin presque.

    Je détermine l'ensemble des handles des controles et envoi soit des postmessage ou des sendkeys.

    Je voudrais supprimer les postmessage et les sendkeys puisqu'il y a quelques bugs.

    Est ce que connaissant la classe du control et son handle je peux le déclarer en tant que control en vba et donc le manipuler comme s'il était natif

    je ne sais pas si c'est possible et je ne trouve pas de fonction en vba qui permet de declarer un objet via son handle

    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Est ce que connaissant la classe du control et son handle je peux le déclarer en tant que control en vba et donc le manipuler comme s'il était natif
    Si telle est ta question, la réponse est non.
    Tu peux à la rigueur lui adresser des messages (si fenêtre Windows à part entière), mais non le "manipuler comme s'il était natif" .

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Par défaut UI AUTOMATION
    Bonjour, je suis Breton !!!

    est ce que l' UI Automation ne peut pas etre une solution a mon probleme?

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    L'automation (et uniquement si l'application "pilotée" la supporte), permet de manipuler les objets de l'application ainsi "pilotée". Cela ne fait pour autant en aucun cas de ces objets des objets de l'application pilotant.

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Par défaut
    je cherche a contrôler un logiciel via vba.....

    je vais voir demain si j'ai les info via Inspect

    par contre, je cherche de la doc et si tu as un lien, je suis preneur

    merci

    ce que je veux c'est simplement faire des click, envoyer du text sur un logiciel..............

    j arrive sur des control "classiques" mais j'arrive a rien sur des controles de type class:

    XTPReport
    xtpBarTop
    xtpBarBottom
    xtpBarLeft
    xtpBarRight

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ta question est donc finalement la même que celle d'une autre discussion que tu as ouverte sans succès : déterminer le handle de certains contrôles présents sur la fenêtre d'une application externe ouverte.
    La lecture de ton autre discussion montre que tu sais parcourir les fenêtres enfants de la fenêtre principale, n'as aucune difficulté à déterminer le handle de certains contrôles, mais en rencontres avec d'autres. Il s'agit là d'un scénario assez classique : ===>>
    Les fenêtres (contrôles, donc) sont identifiables de plusieurs manières :
    - la première (utilisation de la fonction GetFocus de l'Api de Windows) est ici à exclure, puisqu'elle signifierait que tu es déjà sur le contrôle que tu cherches à manipuler :
    - parlons alors des deux autres (avec FindWindow) :
    1) ----- extraction à l'aide de son titre, lorsqu'elle est doté d'un titre (en espérant toutefois que ce même titre (caption) n'ait pas été également donné à des contrôles autres
    2) ----- (pas de caption) extraction à l'aide de sa classe, mais gros problème car il devient alors impossible de distinguer entre eux plusieurs contrôles de la même classe éventuellement présents.
    Tu sembles bien être dans le cas 2 et je ne peux personnellement alors rien pour toi.

  7. #7
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bonjour,

    pour ui automation : http://arkham46.developpez.com/artic...ibility/intro/

    On ne peut pas tout faire avec cependant, cela dépend déjà si l'application ciblée a implémenté la fonctionnalité.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/04/2010, 20h21
  2. [AC-2002] Controle ActiveX : erreur "objet requis"
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/03/2010, 12h03
  3. Utiliser JLabel comme objets d'une JOptionPane (liste déroulante)
    Par Jhino dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 04/01/2010, 11h20
  4. type String considéré comme objet
    Par new_wave dans le forum Langage
    Réponses: 1
    Dernier message: 04/11/2008, 17h25

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