Accueil > Forum > > > > utilisation de Spy++
utilisation de Spy++
vendredi 24 juillet 2009 à 14:36:34 |
utilisation de Spy++

sunvi
|
Bonjour,
je fais un programme qui devrait automatiser une tâche dans un logiciel. Manuellement, on peut effectuer cette tâche de 2manières:
1- en appuyant sur un bouton d'une barre d'outils
2- en faisant un choix dans un menu
j'essaye d'utiliser Spy++, enfin je le découvre...
j'essaye de sélectionner la plus petite fenêtre, et de bouger tout doux sur la fenêtre, mais je me retrouve toujours avec au moins une centaine de messages captés, et je ne sais pas trop lequel est celui que je cherche.
j'ai même enregistré les messages captés en utilisant les 2manières d'activation, en cherchant une similitude, mais non, je trouve pas!
j'ai besoin de vos conseils !
Merci d'avance!
|
|
vendredi 24 juillet 2009 à 15:31:34 |
Re : utilisation de Spy++

juju12
|
Tu peux filtrer les messages pour ne garder que ceux qui t'intéressent (par exemple virer tous les WM_MOUSEMOVE et compagnie...)
Que veux-tu faire exactement?
|
|
vendredi 24 juillet 2009 à 16:03:34 |
Re : utilisation de Spy++

sunvi
|
j'ai essayé de filtrer, j'enlève les messages associé à la souris par exemple, mais là je n'obtiens plus rien... pour le reste je ne sais pas trop ce que c'est, j'essaye à l'aveuglette...
pour le moment je veux capter le code de mon bouton, et le message qui lui est envoyé pour déclencher le processus, pour simuler le click sur ce bouton dans SendMessage.
Pourriez vous me dire ce que signifie "WM_NOTIFY idCtrl:59392 pnmh:0012F9D4" par exemple? et c'est quoi les "S" et "R" qui apparaissent entre le handle et les "WM_..."?
Merci!!!
|
|
dimanche 26 juillet 2009 à 20:53:29 |
Re : utilisation de Spy++

alfred2009
|
Le message WM_NOTIFY correspond à une notification d'un contrôle vers la fenêtre parente. Dans ton exemple, tu as l'ID du contrôle, pnmh devrait correspondre à p_ointer n_otification m_essage h_eader, que l'on utilise dans le traitement du message. S correspond à Send de la fonction SendMessage, R correspond à Return de la fonction SendMessage, dans ce cas il s'agit d'un appel synchrone.
Si j'ai bien compris ton besoin, tu voudrais que le choix d'une option de menu ait la même action que l'appui sur le bouton. La simulation de l'appui sur bouton existe bien, mais tu ne le verras pas avec spy++ puisque la simulation n'est pas en place ! Regarde l'utilisation du message BM_CLICK, à envoyer au bouton par SendMessage.
|
|
lundi 27 juillet 2009 à 09:52:51 |
Re : utilisation de Spy++

sunvi
|
Merci pour les explications alfred2009!!
sinon je crois que t'as pas vraiment compris mon besoin: le choix d'une option du menu, et le bouton raccourci existent déjà tous les 2, dans un logiciel dont je dois automatiser l'exécution.
Donc tu crois que si j'envoie un BM_CLICK au pnmh que j'ai trouvé ça devrait marché?
ce qui me tracasse c'est l'ID du contrôle d'une part, et la notification à envoyer d'autre part....
|
|
lundi 27 juillet 2009 à 11:07:48 |
Re : utilisation de Spy++

alfred2009
|
Ce que je te suggère, c'est d'envoyer BM_CLICK au contrôle. Dans le gestionnaire de ton menu, tu fais un
::SendMessage( Handle_du_Controle, BM_CLICK, 0, 0 ); // appel Win32
Attention, le pnmh que tu as vu dans spy++ n'est pas à utiliser - réutiliser en dehors de cas précis et pointus, et par celui qui maîtrise l'emission du WM_NOTIFY.
|
|
lundi 27 juillet 2009 à 11:38:21 |
Re : utilisation de Spy++

sunvi
|
Mais c'est effectivement ça qui me bloque: le handle du controle, je ne le connais pas
Les logiciels à gérer sont commercialisés, je n'ai pas leurs codes sources, donc il faut que je me débrouille pour trouver le handle, on m'a conseillé spy++...
tu peux me dire où le trouver exactement?
merci!
|
|
lundi 27 juillet 2009 à 14:07:23 |
Re : utilisation de Spy++

alfred2009
|
Spy++ va te donner le handle du bouton, mais celui-ci peut/va changer d'une exécution à l'autre.
Tu peux faire ce que fait Spy++ par programme, pourvu que tu aies un moyen de reconnaître la fenêtre principale et le bouton, par leur texte par exemple. Dans ce cas tu énumères les fenêtres actives (cf EnumWindows pour la fenêtre principale, puis EnumChildWindows pour le bouton), cela te donnera les handles de fenêtre.
|
|
lundi 27 juillet 2009 à 15:03:00 |
Re : utilisation de Spy++

sunvi
|
En fait le bouton appartient à une barre d'outils, EnumWindows me donne l'accès à la fenêtre de mon logiciel toto,quoi que le titre est variable mais il est toujours construit suivant la même règle, donc déterminable. EnumChildWindows me donnera l'accès à la barre d'outils fille de toto "Toolbar" contenant mon bouton, mais même spy++ ne détecte pas une fenêtre plus petite que cette barre d'outils... mon bouton a cependant un nom, ça peut aider?
|
|
mardi 28 juillet 2009 à 08:49:47 |
Re : utilisation de Spy++

alfred2009
|
Si Spy++ ne détecte pas de fenêtre, c'est probablement que le bouton n'est pas un contrôle Windows. Dans ce cas, oublie le BM_CLICK et retour à la case départ.
Pour espionner la toolbar, tu peux aussi utiliser l'outil "control spy", disponible sur la MSDN.
|
|
Cette discussion est classée dans : utilisation, essaye, tâche, spy, 2manières
Répondre à ce message
Sujets en rapport avec ce message
Utilisation de SPY++ [ par goutbouyo ]
Salut,J'ai récupéré le handle d'une fenêtre avec spy++ mais après je n'arrive pas à l'utiliser : j'ai toujours des erreurs car mon handle est sous for
utilisation SDL [ par theidiot ]
J'aimerais s'avoir s'il y un site qui donne de l'information compléte sur l'utilisation SDL (plusieurs exemples doit être acompagner)J'ai chercher mai
utilisation de "SetScrollPos" de l'api windows [ par Tchii28 ]
Bonjour,J'ai un problème je travaille sous windev 8 et apparemment ce site ne traite pas le langage de ce dernier. J'espère malgré tout qu'il y a des
utilisation d'une classe [ par Spiffou ]
bonjour à tous,une ptite question de noob... je souhaite utiliser une classe que j'ai importée, mais je ne sais pas comment faire.en gros j'ai inséré
utilisation de zLib [ par goebish ]
bonjour, j'utilise la zLib dans un de mes programme et je voudrais extraire uniquement le 1er kilo octet d'un fichier a l'intérieur d'une archive just
utilisation d'interface en c++ [ par Spiffou ]
salut à tous,je taf sur vc6 et je souhaiterais utiliser dans mon prog des interfaces, equivalent en java de implements et public interface...public in
problème dessiner image dans fenêtre [ par raoulman ]
Bonjour Comme je tourne en rond, je viens chercher de l'aide. J'essaye de faire un morpion en GDI, c'est pour apprendre. J'ai une fenêtre mère avec 9
spy++ [ par boumarsel ]
le code source de l'utilitaire spy++ est publié? si oui, ou puis-je le trouver? merci
Utilisation des CArchive [ par Bb_TiTi ]
bonjour,je commence a utiliser les CArchive et j'ai quelques questions:- comment passer d'une CArchive a un objet? quand j'ai réécris la fonction seri
fichiers partagés en cours d'utilisation [ par melkiorlenecrarque ]
Bonjour,Existe-il une fonction qui recupere le contenu de la console msdos,ou alors existe-il une fonction qui est similaire à la commande dos "net fi
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|