Générer un clic sur un bouton

urban45 Messages postés 19 Date d'inscription samedi 9 juin 2007 Statut Membre Dernière intervention 29 novembre 2009 - 14 nov. 2008 à 12:17
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 14 nov. 2008 à 14:50
 Bonjour,

Voici le code de mon petit programme:

usingSystem;
using

System.Collections.Generic;
using

System.ComponentModel;
using

System.Data;
using

System.Drawing;
using

System.Linq;
using

System.Text;
using

System.Windows.Forms;
using

System.Diagnostics;
using

System.Runtime.InteropServices;
using

System.Threading;
 

namespace

Simulateur
{

public
partial
class
Form1:
Form{

[DllImport(
"user32.dll")]

private
static
extern
void mouse_event(
long dwFlags,
long dx,
long dy,
long cButtons,
long dwExtraInfo);
[

DllImport(
"user32.dll")]

static
extern
bool SetCursorPos(
int X,
int Y);

public Form1()
{

InitializeComponent();

}

public
enum
MouseEventTFlags{

LEFTDOWN = 0x00000002,

LEFTUP = 0x00000004,

MIDDLEDOWN = 0x00000020,

MIDDLEUP = 0x00000040,

MOVE = 0x00000001,

ABSOLUTE = 0x00008000,

RIGHTDOWN = 0x00000008,

RIGHTUP = 0x00000010

}

private
void Form1_Load(
object sender,
EventArgs e)
{

SetCursorPos(250, 250);

Thread.Sleep(100);
mouse_event((

uint)
MouseEventTFlags.LEFTDOWN, 0, 0, 0, 0);

Thread.Sleep(10);
mouse_event((

uint)
MouseEventTFlags.LEFTUP, 0, 0, 0, 0);
}

[
STAThread]

static
void Main()
{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(
false);

Application.Run(
new
Form1());
}

private
void button1_Click(
object sender,
EventArgs e)
{

Debug.WriteLine(
"COME ON !!");
}

}

}

J'ai créé un bouton dans mon form et quand je clique manuellement deçu, j'ai bien le message "COME ON" qui s'affiche dans Visual Studio, par contre, le clic que je génére automatiquement dans mon main ne marche pas...
Je n'ai pas de message "COME ON". J'ai juste la certitude que la souris se déplace en 250,250 et quel est bien au niveau du bouton...
Comment se fait-il que mouse_event ne marche pas... je ne comprend pas...

Merci d'avance

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
14 nov. 2008 à 14:16
Salut,

Regarde le source suivant
http://www.vbfrance.com/code.aspx?ID=5630

Je pense que tu as oublié de positionner des paramètres.
dx et dy par exemple

Bon coding
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 nov. 2008 à 14:17
Bonjour,
Et la méthode PerformClick sur le bouton ne fait pas l'affaire?

<hr />
-Blog-
-WebSite-
0
urban45 Messages postés 19 Date d'inscription samedi 9 juin 2007 Statut Membre Dernière intervention 29 novembre 2009
14 nov. 2008 à 14:33
Merci nhervagault mais je souhaiterais avoir la réponse en C#, de plus je fais exactement la même chose (similaire) que dans ton exemple VB et pourtant ça ne marche pas...

Bidou, concernant la méthode PerformClick, elle ne m'intéresse pas vraiment car je souhaite cliquer à une position sans avoir accés au bouton... Car dans le logiciel sur lequel je veux cliquer, je n'ai pas accés au bouton...

Visiblement, je ne dois pas être loin du but mais je ne vois pas mon problème !!

Merci d'avance
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 nov. 2008 à 14:50
0
Rejoignez-nous