Pas de dépendances
#define _WIN32_WINNT 0x0500 #include <windows.h> void clic_ici(int x, int y) { INPUT i[2]; memset(i, 0, sizeof(i)); i[0].type = i[1].type = INPUT_MOUSE; i[0].mi.dx = (65535. / (double)GetSystemMetrics(SM_CXSCREEN)) * x; i[0].mi.dy = (65535. / (double)GetSystemMetrics(SM_CYSCREEN)) * y; i[0].mi.dwFlags = MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN; i[1].mi.dwFlags = MOUSEEVENTF_LEFTUP; SendInput(2, i, sizeof(INPUT)); } int main(void) { int delai_en_secondes = 5; int position_x = 500, position_y = 500; while(1){ clic_ici(position_x, position_y); Sleep(delai_en_secondes * 1000); } return 0; }
Merci à Magma pour l'exemple : http://www.siteduzero.com/forum-83-638031-p1-programme-clic-resolut.html#r6136745 Voici un programme qui fait cliquer la souris à la coordonnée 500,500, toutes les 5 secondes. On appelle la fonction clic_ici, puis on attend 5 secondes. Dans la fonction, nous crénos 2 structures INPUT, que nous remplissons, et envoyons à la fonction SendInput Nous envoyons à cette dernière 2 structures, car quand on clique, on appuie et on relâche. Cela se fait en deux fois. dx et dy sont des coordonnées absolues (qu'on spécifie avec le flag MOUSEEVENTF_ABSOLUTE) qui seraient les coordonnées des la souris dans la résolution maximum théorique 65535*65535. Utiliser GetSystemMetrics avec SM_CXSCREEN et SM_CYSCREEN permet de récupérer votre résolution, et donc de spécifier les coordonnées x,y dans votre résolution. Le reste du code parle de lui même. Quelques documentations : Fonction SendInput : http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310%28v=vs.85%29.aspx De la vous pouvez vous documenter sur la structure INPUT.