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++ Discussion :

R�cup�rer composants d'une GUI


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 14
    Par d�faut R�cup�rer composants d'une GUI
    Bonjour � tous,

    je voudrais savoir s'il �tait possible depuis une application, r�cup�rer des informations sur les composants de la GUI d'une autre application.

    En clair si je lance une application X (comme firefox), est-ce que je pourrais r�cup�rer la position de chacun des boutons qui y sont pr�sents depuis mon programme Y (l'onglet firefox, les boutons de r�duction, agrandissement, fermeture et tous les autres..) sachant que Y �ventuellement ne fait que lancer X.

    Merci beaucoup, je ne trouve pas r�ponse � ma question sur google, mais j'ai peut-�tre les mauvais mot-cl�s.

    jav974

  2. #2
    Membre chevronn�
    Inscrit en
    D�cembre 2010
    Messages
    290
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 290
    Par d�faut
    Dans cette r�ponse, j'assume que tu programmes sous Win32.
    Comme souvent en informatique, la r�ponse est "�a d�pend".

    Si ton application utilises des contr�les syst�mes, alors le syst�me de fen�tres a connaissance de la position de chaque "widget", et il maintient �a dans un arbre. Il existe plusieurs fonctions Win32 qui te permettent de te balader dans cet arbre, notamment GetNextWindow() et FindWindow(). Chaque fois que tu obtiens un handle vers une fen�tre, tu peux par exemple connaitre sa position en appelant GetWindowRect().

    Toutefois, de nombreuses applications n'utilisent pas le syst�me pour dessiner leurs controles. C'est notamment le cas des applications GTK, et, � ma connaissance, des applications Qt (mais je n'ai pas v�rifi�). Je serais pas �tonn� que FireFox fasse aussi partie des applications qui dessinent elles m�me leurs boutons. Dans cette situation, il n'y a pas de solution miracle : le syst�me n'est pas au courant qu'une certaine fen�tre contient un bouton. Il faudra trouver une autre solution.

    Il existe un outil g�nial nomm� Spy++ (qui � ma connaissance est fourni avec le PlatformSDK) qui te permet d'examiner l'arborescence des fen�tres. Cet outil n'est pas magique : ce qu'il fait, tu peux le faire aussi dans une de tes applications.

  3. #3
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    J'ai connu un projet de recherche en interfaces qui d�tectait la position des boutons en lisant les pixels � l'�cran. Leur objectif �tait de cr�er une fonctionalit� de "rattrapage de clic pas loin", entre autre.

    Je reconnais que ce n'est probablement pas ce que tu cherches, mais c'est une illustration du "�a d�pend"

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 14
    Par d�faut
    Merci pour ces r�ponses. En effet le "�a d�pend" est tr�s contraignant dans mon cas puisque je comptais faire tourner mon appli sur linux/windows .

    J'avais aussi pens� � une solution du style r�cup�rer une capture d'�cran du programme lanc� pour d�marrer la d�tection graphique de bouton dans l'image. Mais au del� m�me de faire qqc de fonctionnel dans tous les cas, r�cup�rer graphiquement tout �l�ment int�ractif d'un programme, �a va pas �tre de la tarte.

    jav974

  5. #5
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    La plus part du temps, ce genre de besoin vient de l'envie de commander un programme depuis un autre.

    Et toujours la plus part du temps, il suffit de se pencher sur les options en ligne de commande.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 14
    Par d�faut
    Effectivement c'est exactement ce que je cherche � faire, cependant les options de commande ne sont pas une option.

    Ce que je cherche � effectuer, c'est un syst�me de pose de calque ( r�gion semi-transparente ) sur un �l�ment de la GUI inter-actif (un bouton, un lien ou autre) afin de permettre � mon appli X (le lanceur) d'utiliser le programme de mani�re transparente (un casque EEG ou un systeme EyeTracking permettra de naviguer de calque en calque) sans avoir besoin de souris ni de clavier.

  7. #7
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Dans ce cas l�, je pencherai plus vers un contr�leur d'"input device".

    Il "suffit" de cr�er un driver pour le casque EEG qui g�n�rerait des �v�nements souris ou clavier.

Discussions similaires

  1. Comment r�cup�rer la valeur d'un composant d'une form
    Par NacerAli dans le forum D�buter
    R�ponses: 5
    Dernier message: 27/02/2010, 11h19
  2. comment r�cup�rer la valeur des composants d'une autre application
    Par AlexTheDoctor dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 23/12/2009, 18h13
  3. R�ponses: 12
    Dernier message: 11/08/2009, 01h36
  4. Composant COM pour ajouter une GUI � un script
    Par omen999 dans le forum Vos Contributions VBScript
    R�ponses: 3
    Dernier message: 14/02/2008, 00h01
  5. R�ponses: 1
    Dernier message: 31/07/2006, 13h54

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