Demander a un bouton de cliquer sur un autre

thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010 - 19 déc. 2006 à 14:14
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 19 déc. 2006 à 18:15
Je sais c'est expliqué bizarement.
tous ce que je veux c'est demander a un bouton d'effectuer l' operation suivante : cliquer sur un bouton présent dans la même fenêtre voici ce ke je demande a mon bouton2 :

private
void button2_Click(
object sender, System.EventArgs e)
{
      win=FindWindow(
null,"Form1");

      if((
int)win==0)      MessageBox.Show("Fenetre non trouvée");
      
else
      {
            Thread T=
new System.Threading.Thread(
new System.Threading.ThreadStart(ThreadProc));
            T.Start();
      }
}
Voici le ThreadProc:

public
void ThreadProc()
{

      int retour;
      IntPtr button; 
      POINT pt=
new POINT();
      IntPtr handle;
      handle=button1.Handle;
      Form myForm=button1.FindForm();
      IntPtr HWND=myForm.Handle;

      if((
int)handle==0)      MessageBox.Show("Pas trouver");
      pt.x+=150;   //Emplacement du bouton dans la fenetre
      pt.y+=200;

      int downMsg=0x0201;
//WM_LBUTTONDOWN
      IntPtr downWParam =
new IntPtr(0x0001);   //MK_LBUTTON

      int upMsg = 0x0202;
//WM_LBUTTONUP
      IntPtr lParam =
new IntPtr(pt.x | (pt.y << 16));
      PostMessage(handle, downMsg, (
int)downWParam,(
int) lParam); //LBUTTONDOWN
      Sleep(1000);
      PostMessage(handle, upMsg, (
int)IntPtr.Zero,(
int) lParam); //LBUTTONUP
}

Je vois le bouton qui fait comme si on cliquer dessus mais rien ne se passe: l'appui sur le bouton 1 m'affiche juste une messagebox avec marquer BOUTON1 c'est tout.

Pouvez-vous m'aider SVP. Merci

12 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 déc. 2006 à 15:07
???

je ne comprends pas bien...
tu veux que lorsque tu cliques sur ton bouton ce soit un autre qui soit cliquer ???

pourquoi ne pas toujours simplement partagé leur delegate, voire même créer une méthode commune ?

Séb

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 déc. 2006 à 15:12
Salut,

La classe Button possède une méthode PerformClick, mais il serait mieux de déporter le code dans une méthode dédie et d'appeler celle ci au déclenchement des 2 events.

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 déc. 2006 à 15:13
Prochaine fonctionnalité sur CS : le lock sur les messages

/*
coq
MVP Visual C#
CoqBlog
*/
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 déc. 2006 à 15:25
lol... oui alors, gestion des priorités en fonction du grade sur CS

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
19 déc. 2006 à 16:10
Ou un popup... "Attention, sebmafate répond deja à la question"

Mx
MVP C# 
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 déc. 2006 à 16:14
et encore, vous avez de la chance... car j'ai levé le pied... j'ai du mal à faire 100 points sur la semaine

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
19 déc. 2006 à 16:17
T'inquiète, je plafonne a 50 ces temps :/

Mx
MVP C# 
0
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
19 déc. 2006 à 17:01
C'est à ça qu'on reconnait un admin :)

[:D] @++
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 déc. 2006 à 17:06
à quoi ? au nombre de points... ou au flood sur les threads

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
19 déc. 2006 à 17:47
Nbre de points -> implication dans le réseau (et oui, vous vous impliquez beaucoup, chapeau!)
Les floods, bah c pas nécessairement mauvais même s'il n'y a pas de rapport avec le sujet. Du moment que la question a trouvé réponse :)

[:D] @++
0
thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010
19 déc. 2006 à 18:04
en fait ce ke je veux faire c utiliser les API windows pour faire croire a tel bouton kon a cliquer dessus (c juste un pti test)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 déc. 2006 à 18:15
Dans ce cas là, si c'est pour une autre application, tu dois regarder du côté de l'envoi des notifications WM_LBUTTONDOWN, WM_LBUTTONUP (en gardant à l'esprit que sous Vista ça ne passera pas forcément, UIPI oblige) ou encore du côté des API d'accessibilité/UI automation qui peuvent aussi servir à ce genre de tâche.

Si c'est pour ta propre application, je reste sur mon message précédent.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous