Utilisation d'un SendMessage [Résolu]

Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- - Dernière réponse : WhiteHippo
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
- 4 déc. 2007 à 01:21
Aprés avoir trouvé le handle d'une fenetre sur lequel il y a deux boutons, je veux simuler un clic sur le deuxieme bouton, pour ce faire je dois donc simulerTab + Entrée.

Voici ce que je fait mais ça marche pas, avez-vous une autre idée ?
<ol><li>SendMessage(handle, WM_KEYDOWN, VK_TAB, 1);
</li><li>SendMessage(handle, WM_KEYDOWN, VK_RETURN, 1);</li></ol>merci de votre aide.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
3
Merci
  // Attention espace à la fin !!!! 
  // Voilà une raison de plus de ne pas utiliser cette méthode
  MonHandle := FindWindow('SALSUBFRAME', 'OpenOffice.org 2.1 '); 

  // Mise au premier plan de la fenetre
  Windows.BringWindowToTop(MonHandle);

  // petit délai
  sleep(20);
 
  // Simulation appui de la touche I du "ignorer" 
  PostMessage(MonHandle, WM_CHAR, ord('i') ,0);


P.S. Comme je te l'ai dit sur l'autre post, je désapprouve totalement cette méthode, mais si elle te convient ...

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de WhiteHippo
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,

une petite recherche sur le site t'aurais permis de trouver ton bonheur :
http://www.delphifr.com/codes/CLIQUER-SUR-BOUTON-AUTRE-APPLICATION_21452.aspx

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Merci de ta réponse mais apres avoir etudier le source est extrait le code qui m'interesse , je viens de me rendre compte que les boutons ont le meme handle que la fentre qu'il contient donc impossible en théorie d'attaquer directement le bouton qui m'interesse, voici le code que j'utilise :

  monhandle5 := FindWindow(nil, PChar(UpperCase('OpenOffice.org 2.0 '))); //Retrouve le Handle de la fenêtre principale
  Showmessage(IntToStr(monhandle5));


   monhandle6 := FindWindowEx(monhandle5, 0, nil, PChar(UpperCase('Annuler')));
   Showmessage(IntToStr(monhandle6));


   SendMessage(monhandle6, BM_CLICK, 0, 0);  //on clique dessus
Commenter la réponse de vieuxpere
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Essaye voir sans utiliser PChar et UpperCase
FindWindowEx(MonHandle5, 0, nil, 'Annuler');

Et si le bouton à un ShortCut (une lettre soulignée) 
"Annuler" :
FindWindowEx(MonHandle5, 0, nil, '&Annuler');

"Annuler" :

FindWindowEx(MonHandle5, 0, nil, 'A&nnuler');

PS : les lettres soulignées n'apparaissent qu'en appuyant sur "Alt"

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Merci de votre aide, mais le probleme c'est que la fenetre sur lequel je souhaite cliquer sur son bouton Ignorer à le même handle que son bouton, il faudrait donc que je mette le focus dessus la fenetre et que je fasse TAB + Entrée pour que ca puisse marcher.

Probleme je sais pas comment faire.

Si quelqu'un à une idée ...

PS : La fenetre qui à le même handle que ses boutons, c'est la demande d'enregistrement d'Open Office 2 quand on veut sortir sans avoir enregistrer
Commenter la réponse de vieuxpere
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
30 juillet 2009
0
Merci
salut,

je ne les ai jamais utilisé, mais t'arrive pas avec à faire ce que tu veux avec les API de OO ?

http://api.openoffice.org/

genre, y a une source vb qui fait quelques trucs avec OO et OLE:
http://www.vbfrance.com/code.aspx?ID=20435

bon code,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Commenter la réponse de cs_Loda
Messages postés
1015
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
29 août 2013
0
Merci
"le probleme c'est que la fenetre sur lequel je souhaite cliquer sur son bouton Ignorer à le même handle que son bouton"
c'est possible ca?
essaye avec spy++ ou winsight pour etre sur, mais pour moi, c'est pas possble que 2 objets aient le meme handle
Commenter la réponse de Guillemouze
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Pour moi c'est un meme objet avec des zones qui réagissent différement et qui prennent visuellement la forme de bouton.
Commenter la réponse de vieuxpere

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.