Voila deux fonctions une pour simuler un clic gauche de souris (SimulerMouse) qui prend deux argument les coordonnées x et y de la position du pointeur
la deuxième fonction : SimulerKey permet de simuler une ou plusieurs combinaison de touches
ex: simulation de la touche 'r' : SimulerKey(0x52, 0, 0, 1);
simulation de la combinaison de touches : ALT+ENTRER : SimulerKey(VK_MENU, VK_RETURN, 0, 2);
simulation de la combinaison de touches : CTRL+ALT+à (touche @) : SimulerKey(VK_CONTROL, VK_MENU, 0x30, 3);
les code des touches sont disponible ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/UserInput/VirtualKeyCodes.asp
Source / Exemple :
void SimulerMouse(int x, int y)
{
// Définir la position du curseur de al souris
SetCursorPos(x, y);
// Simule l'action de clic du bouton gauche de la souris
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
// Simule l'action de relâcher du bouton gauche de la souris
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
//---------------------------------------------------------------------------
void SimulerKey(int x, int y, int z, int nbre)
{
if(nbre == 1)
{
switch(x)
{
// Lettres
case 'a':
x = 0x41;
break;
case 'b':
x = 0x42;
break;
case 'c':
x = 0x43;
break;
case 'd':
x = 0x44;
break;
case 'e':
x = 0x45;
break;
case 'f':
x = 0x46;
break;
case 'g':
x = 0x47;
break;
case 'h':
x = 0x48;
break;
case 'i':
x = 0x49;
break;
case 'j':
x = 0x4a;
break;
case 'k':
x = 0x4b;
break;
case 'l':
x = 0x4c;
break;
case 'm':
x = 0x4d;
break;
case 'n':
x = 0x4e;
break;
case 'o':
x = 0x4f;
break;
case 'p':
x = 0x50;
break;
case 'q':
x = 0x51;
break;
case 'r':
x = 0x52;
break;
case 's':
x = 0x53;
break;
case 't':
x = 0x54;
break;
case 'u':
x = 0x55;
break;
case 'v':
x = 0x56;
break;
case 'w':
x = 0x57;
break;
case 'x':
x = 0x58;
break;
case 'y':
x = 0x59;
break;
case 'z':
x = 0x5a;
break;
// Chiffres avec le vérouillage numérique
case '0':
x = 0x60;
break;
case '1':
x = 0x61;
break;
case '2':
x = 0x62;
break;
case '3':
x = 0x63;
break;
case '4':
x = 0x64;
break;
case '5':
x = 0x65;
break;
case '6':
x = 0x66;
break;
case '7':
x = 0x67;
break;
case '8':
x = 0x68;
break;
case '9':
x = 0x69;
break;
case '.':
x = 0x6e;
break;
// Chiffres au dessus des lettres
case 'à':
y = 0x30;
break;
case '&':
y = 0x31;
break;
case 'é':
y = 0x32;
break;
case '"':
y = 0x33;
break;
case '\'':
y = 0x34;
break;
case '(':
y = 0x35;
break;
case '-':
y = 0x36;
break;
case 'è':
y = 0x37;
break;
case '_':
y = 0x38;
break;
case 'ç':
y = 0x39;
break;
default:
break;
}
}
if(nbre == 2)
{
switch(y)
{
// Lettres
case 'a':
y = 0x41;
break;
case 'b':
y = 0x42;
break;
case 'c':
y = 0x43;
break;
case 'd':
y = 0x44;
break;
case 'e':
y = 0x45;
break;
case 'f':
y = 0x46;
break;
case 'g':
y = 0x47;
break;
case 'h':
y = 0x48;
break;
case 'i':
y = 0x49;
break;
case 'j':
y = 0x4a;
break;
case 'k':
y = 0x4b;
break;
case 'l':
y = 0x4c;
break;
case 'm':
y = 0x4d;
break;
case 'n':
y = 0x4e;
break;
case 'o':
y = 0x4f;
break;
case 'p':
y = 0x50;
break;
case 'q':
y = 0x51;
break;
case 'r':
y = 0x52;
break;
case 's':
y = 0x53;
break;
case 't':
y = 0x54;
break;
case 'u':
y = 0x55;
break;
case 'v':
y = 0x56;
break;
case 'w':
y = 0x57;
break;
case 'x':
y = 0x58;
break;
case 'y':
y = 0x59;
break;
case 'z':
y = 0x5a;
break;
// Chiffres au dessus des lettres
case '0':
y = 0x30;
break;
case '1':
y = 0x31;
break;
case '2':
y = 0x32;
break;
case '3':
y = 0x33;
break;
case '4':
y = 0x34;
break;
case '5':
y = 0x35;
break;
case '6':
y = 0x36;
break;
case '7':
y = 0x37;
break;
case '8':
y = 0x38;
break;
case '9':
y = 0x39;
break;
default:
break;
}
}
if(nbre == 3)
{
switch(z)
{
// Chiffres au dessus des lettres
case '@':
z = 0x30;
break;
case '~':
z = 0x32;
break;
case '#':
z = 0x33;
break;
case '{':
z = 0x34;
break;
case '[':
z = 0x35;
break;
case '|':
z = 0x36;
break;
case '`':
z = 0x37;
break;
case '\\':
z = 0x38;
break;
case '^':
z = 0x39;
break;
default:
break;
}
}
keybd_event(x,0,0,0);
if(nbre==2 || nbre ==3)
keybd_event(y,0,0,0);
if(nbre==3)
{
keybd_event(z,0,0,0);
keybd_event(z,0,KEYEVENTF_KEYUP,0);
}
if(nbre==2 || nbre ==3)
keybd_event(y,0,KEYEVENTF_KEYUP,0);
keybd_event(x,0,KEYEVENTF_KEYUP,0);
}
//---------------------------------------------------------------------------
Conclusion :
Le code m'a l'air assez simple je l'ai fait parce que j'ai eu du mal a trouver comment cela marche.
Si cela peut aider des jeunes développeurs tant mieux.
++ Nexus
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.