A partir d'un petit programme, j'arrive à envoyer un clic sur tous les
boutons d'une fenêtre d'une application externe avec SendMessage sauf pour un
bouton récalcitrant. Voici le code :
Const BM_CLICK As Long = &HF5&
Dim i as long, j as long
i = FindWindow&(Classe, "titre de la fenêtre de l'appli externe")
j = FindWindowEx(i, ByVal 0&, "Button", "titre du bouton")
Call SendMessage(j, BM_CLICK, 0, 0)
Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc ...
qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il
erronné ?
Merci beaucoup pour votre avis. Je cherche depuis une semaine sans succès.
Teddy
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Picalausa François
"teddy" a écrit dans le message de news:
Const BM_CLICK As Long = &HF5& [...] Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc ... qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program FilesMicrosoft Visual StudioCommonTools) fourni avec Visual Studio 6 devrait pouvoir t'aider. Il afficher toutes les fenêtres, leur classe, etc. Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
-- Picalausa François
"teddy" <teddy@discussions.microsoft.com> a écrit dans le message de news:
D25956FF-8C78-417B-973F-134E9562DA6A@microsoft.com...
Const BM_CLICK As Long = &HF5&
[...]
Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc
...
qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il
erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program FilesMicrosoft
Visual StudioCommonTools) fourni avec Visual Studio 6 devrait pouvoir
t'aider. Il afficher toutes les fenêtres, leur classe, etc.
Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
Const BM_CLICK As Long = &HF5& [...] Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc ... qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program FilesMicrosoft Visual StudioCommonTools) fourni avec Visual Studio 6 devrait pouvoir t'aider. Il afficher toutes les fenêtres, leur classe, etc. Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
-- Picalausa François
teddy
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas. Je sais d'ailleurs les lister ainsi que leur classe et handle.
Le bouton que je cherche à cliquer via mon programme ne fonctionne pas sauf avec un vrai clic manuel à la souris. Il y a donc une astuce sur ce fameux bouton (un masque, une couche frame, je ne sais pas quoi ??) Les autres objets de la fenêtre se laissent bien manipuler par mon programme, je peux tout faire sur cette fenêtre sauf ce que je veux :-((((((((((((
J'ai remplacé par SendMessage par PostMessage, mais en fait, ça ne change rien.
Merci encore, si vous avez déjà trouvé ce genre de difficulté, répondez-moi.
Ted
"Picalausa François" a écrit dans le message de news:
"teddy" a écrit dans le message de news:
Const BM_CLICK As Long = &HF5& [...] Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc ... qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program FilesMicrosoft Visual StudioCommonTools) fourni avec Visual Studio 6 devrait pouvoir t'aider. Il afficher toutes les fenêtres, leur classe, etc. Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
-- Picalausa François
OK, merci.
J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe
pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas.
Je sais d'ailleurs les lister ainsi que leur classe et handle.
Le bouton que je cherche à cliquer via mon programme ne fonctionne pas sauf
avec un vrai clic manuel à la souris.
Il y a donc une astuce sur ce fameux bouton (un masque, une couche frame, je
ne sais pas quoi ??)
Les autres objets de la fenêtre se laissent bien manipuler par mon
programme, je peux tout faire sur cette fenêtre sauf ce que je veux
:-((((((((((((
J'ai remplacé par SendMessage par PostMessage, mais en fait, ça ne change
rien.
Merci encore, si vous avez déjà trouvé ce genre de difficulté, répondez-moi.
Ted
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de news:
eGWaafX6GHA.1484@TK2MSFTNGP05.phx.gbl...
"teddy" <teddy@discussions.microsoft.com> a écrit dans le message de news:
D25956FF-8C78-417B-973F-134E9562DA6A@microsoft.com...
Const BM_CLICK As Long = &HF5&
[...]
Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc
...
qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il
erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program
FilesMicrosoft Visual StudioCommonTools) fourni avec Visual Studio 6
devrait pouvoir t'aider. Il afficher toutes les fenêtres, leur classe,
etc.
Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas. Je sais d'ailleurs les lister ainsi que leur classe et handle.
Le bouton que je cherche à cliquer via mon programme ne fonctionne pas sauf avec un vrai clic manuel à la souris. Il y a donc une astuce sur ce fameux bouton (un masque, une couche frame, je ne sais pas quoi ??) Les autres objets de la fenêtre se laissent bien manipuler par mon programme, je peux tout faire sur cette fenêtre sauf ce que je veux :-((((((((((((
J'ai remplacé par SendMessage par PostMessage, mais en fait, ça ne change rien.
Merci encore, si vous avez déjà trouvé ce genre de difficulté, répondez-moi.
Ted
"Picalausa François" a écrit dans le message de news:
"teddy" a écrit dans le message de news:
Const BM_CLICK As Long = &HF5& [...] Dans l'appli cible, peut-il y avoir une astuce genre fenêtre fille, etc ... qui gêne l'accès à mon bouton ou bien mon code avec SendMessage est-il erronné ?
Hello,
L'utilitaire spy++ (spyxx.exe; généralement dans C:Program FilesMicrosoft Visual StudioCommonTools) fourni avec Visual Studio 6 devrait pouvoir t'aider. Il afficher toutes les fenêtres, leur classe, etc. Eventuellement envoyer WM_LBUTTONDOWN et WM_LBUTTONUP peut aider...
-- Picalausa François
Picalausa François
" teddy" a écrit dans le message de news: O%
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit de cliquer glisser le viseur sur le bouton cible pour déterminer la fenêtre la plus proche (un rectangle indique celle-ci). De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il y a la possibilité de "Highlight" qui affiche assez clairement la fenêtre en question. Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN (envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul inconvénient étant la détermination de la position du bouton dans la zone cliente du parent.
-- Picalausa François
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
O%23EMWre6GHA.4276@TK2MSFTNGP04.phx.gbl...
OK, merci.
J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez
complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va
pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit de
cliquer glisser le viseur sur le bouton cible pour déterminer la fenêtre la
plus proche (un rectangle indique celle-ci).
De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il y
a la possibilité de "Highlight" qui affiche assez clairement la fenêtre en
question.
Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN
(envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul
inconvénient étant la détermination de la position du bouton dans la zone
cliente du parent.
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit de cliquer glisser le viseur sur le bouton cible pour déterminer la fenêtre la plus proche (un rectangle indique celle-ci). De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il y a la possibilité de "Highlight" qui affiche assez clairement la fenêtre en question. Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN (envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul inconvénient étant la détermination de la position du bouton dans la zone cliente du parent.
-- Picalausa François
teddy
Merci encore. Ted
"Picalausa François" a écrit dans le message de news: %
" teddy" a écrit dans le message de news: O%
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit de cliquer glisser le viseur sur le bouton cible pour déterminer la fenêtre la plus proche (un rectangle indique celle-ci). De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il y a la possibilité de "Highlight" qui affiche assez clairement la fenêtre en question. Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN (envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul inconvénient étant la détermination de la position du bouton dans la zone cliente du parent.
-- Picalausa François
Merci encore.
Ted
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de news:
%23CAM9Ng6GHA.4644@TK2MSFTNGP04.phx.gbl...
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
O%23EMWre6GHA.4276@TK2MSFTNGP04.phx.gbl...
OK, merci.
J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez
complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va
pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit
de cliquer glisser le viseur sur le bouton cible pour déterminer la
fenêtre la plus proche (un rectangle indique celle-ci).
De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il
y a la possibilité de "Highlight" qui affiche assez clairement la fenêtre
en question.
Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN
(envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul
inconvénient étant la détermination de la position du bouton dans la zone
cliente du parent.
"Picalausa François" a écrit dans le message de news: %
" teddy" a écrit dans le message de news: O%
OK, merci. J'ai bien utilisé SPY++ mais le "treeview" qu'il retourne est assez complexe pour y retrouver mes objets de fenêtres et trouver ce qui ne va pas.
Hello,
Dans la fenêtre de recherche (Ctrl+F), il y a le "Finder tool". Il suffit de cliquer glisser le viseur sur le bouton cible pour déterminer la fenêtre la plus proche (un rectangle indique celle-ci). De même, en cliquant avec le bouton droit sur une fenêtre du treeview, il y a la possibilité de "Highlight" qui affiche assez clairement la fenêtre en question. Il se peut que le bouton n'ait pas de fenêtre! Dans ce cas, WM_LBUTTONDOWN (envoyé à la fenêtre "contenant" le bouton) sera plus approprié, le seul inconvénient étant la détermination de la position du bouton dans la zone cliente du parent.