Problème avec SendINPUT [Résolu]

Messages postés
12
Date d'inscription
dimanche 30 mars 2003
Dernière intervention
21 août 2007
- - Dernière réponse : Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- 24 févr. 2006 à 17:52
Salut à tous, je vous explique le problème:

je cherche à simuler le clic de la souris en low level, pour cela j'utilise SendINPUT de user32.dll,
en fait à chq fois que j'apelle la méthode clique() si dessous, le programme clique...mais ne relache pas.
J'ai essayé de changer plusieurs fois les 2 constantes (0x001 et 0x002 normallement) et j'arrive à quasiment
tout faire, double-clique, simple clic avec le bouton droit, mais rien à faire avec le gauche !!

Voilà la partie du code concerné:

public class Souris
{
[DllImport("User32.dll", SetLastError=true)]
private static extern int SendInput(int nInputs, ref INPUT pInputs, int cbSize);

public const int MOUSEEVENTF_LEFTDOWN =0x0001;
public const int MOUSEEVENTF_LEFTUP =0x0002; // A lui la faute ?

public struct INPUT
{
public int type;
public MOUSEINPUT mi;
}

public struct MOUSEINPUT
{
public int dx;
public int dy;
public int mouseData;
public int dwFlags;
public int time;
public int dwExtraInfo;
}

public void clique()
{
INPUT aInput = new Souris.INPUT();
aInput.type = 0;
aInput.mi.dwFlags = Souris.MOUSEEVENTF_LEFTDOWN;
aInput.mi.dwExtraInfo = 0;
aInput.mi.mouseData = 0;
aInput.mi.time = 0;
Souris.SendInput(1, ref aInput, Marshal.SizeOf(aInput));
aInput.mi.dwFlags = Souris.MOUSEEVENTF_LEFTUP;
Souris.SendInput(1, ref aInput, Marshal.SizeOf(aInput));
}

}

alors là je suis vraiment à court d'idée... si quelqu'un à la solution...
Merci !!

NSV Corp.: 3D world of applications
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
3
Merci
Salut,

// winuser.h

#define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */
#define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */

Dire « Merci » 3

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

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Lutinore

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.