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

C++Builder Discussion :

Cliquer sur un bouton dans une autre application


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Par défaut Cliquer sur un bouton dans une autre application
    Bonjour,

    Est-il possible a partir de mon application de simuler un click de souris sur un bouton d'une autre application ?

    Si oui, auriez-vous un exemple SVP ?

    Merci d'avance
    Fred

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    D'après moi ceci devrait fonctionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hParent, WM_COMMAND, MAKELONG(ID_de_ton_control, BN_CLICKED), (LPARAM)hButton);
    Bien sûr il faut trouver les bonnes infos sur le bouton.

    Pour plus d'info sur le message BN_CLICKED:
    http://msdn.microsoft.com/en-us/library/aa452896.aspx

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Si c'est simuler un click sur un bouton d'une application totalement independante de celle que tu utilise c'est possible, mais il te faut recuperer les Handles de la Form, et des divers elements, jusqu'au boutton

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Tiens voici une solution plus complète que j'ai volé sur Experts Exchange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
          //------------ 1er - trouvé la fenêtre ------------//
     
          HWND hDlg = FindWindowEx(NULL, NULL, m_lpszClass, (LPCTSTR)m_strWindowText);
     
          //------------ 2e - trouvé et cliqué sur le bouton ------------//
     
          if (hDlg)      
          {
                HWND hControl = 0;
                hControl = GetDlgItem(hDlg, m_nControlID);
     
                if ( PostMessage(hDlg, WM_COMMAND, (WPARAM)((BN_CLICKED*0x10000)+m_nControlID), (LPARAM)hControl) )
                      if ( ! m_bLurk)      
                            return true;
          }
    Pour trouvé certaine information tu dois utilisé un programme comme WinSpy++.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    je connaissais pas ton tool sinon pour recuperer id handle
    il y a aussi un super outil dispo à l install d autoIt : Au3Info.exe

    http://www.autoitscript.com/autoit3/

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Par défaut
    Salut,

    Merci pour vos reponses, je vais essayer...
    Juste encore une petite question:
    Si je ne me trompe pas , l'ID de mon control (button) change a chaque nouvelle execution de l'application ? Comment je peux faire car dans vos exemples on a besoin d'un ID pour le control ?

    cedni, je suis alle voir Au3Info.exe, et ca a l'air pas mal du tout ce soft, mais je voudrais essayer de le faire moi meme dans mon application. Si vraiment je n'y arrive pas, alors je me rabattrais sur Au3Info.exe.

    Merci
    Fred

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Il faut pour recuperer le Handle d'une Form utiliser comme la dit Crayon un utilitaire comme WinSpy++ qui va te lister touts les programmes en cour, ca te permet de recuperer le nom de la fenetre, et son Handle

  8. #8
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Normalement la variable m_nControlID ne devrais pas changer si c'est toujours le même bouton. Avec WinSpy++ sélectionne le bouton et regarde la valeur à côté de Control ID.

    Les seuls valeurs qui changent sont les valeurs défini par HWND.

    Pour remplir la variable m_lpszClass il faut sélectionné la fenêtre complète de ton application et regarder la valeur à Class. Par exemple, avec Firefox on obtient MozillaUIWindowClass. Et on rempli m_strWindowText avec le texte qui est dans Caption.

    Pour plus d'info sur FindWindowEx va voir:
    http://msdn.microsoft.com/en-us/libr...00(VS.85).aspx

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2015, 15h23
  2. Réponses: 6
    Dernier message: 08/03/2014, 22h38
  3. Réponses: 4
    Dernier message: 08/10/2010, 14h59
  4. [AC-2000] cliquer sur un bouton d'une autre appli par code
    Par noemieze dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/12/2009, 12h05
  5. Intercepter l'action sur un bouton dans une autre vue
    Par Hira. dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 17/12/2008, 09h51

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