Bonjour
Je possède une vieille tablette graphique dont les drivers ne sont plus maintenus (ils ne fonctionnent qu'avec 98...), donc j'essaye de les refaire. J'arrive à récupérer les infos de la tablette (enfin pas totalement mais c'est un autre problème), par contre je n'arrive pas à faire bouger le souris. Voilà le code que j'utilise (tout les exemple que j'ai trouvé sur ce site étaient pour le clavier, j'ai donc dû adapter) :
#define _WIN32_WINNT 0x0501
#define _WIN32_IE 0x0501
#include <windows.h>
// Initialisation
INPUT souris;
souris.type = INPUT_MOUSE;
souris.mi.dwExtraInfo = MOUSEEVENTF_ABSOLUTE;
souris.mi.time = 0;
// boucle
souris.mi.dx = posX;
souris.mi.dy = posY;
SendInput(1, &souris, sizeof(INPUT));
Il n'y a pas d'erreur à la compilation. Si j'affiche la valeur retournée par SendInput, c'est 1, ce qui signifie qu'il n'y a pas d'erreur d'après la doc MSDN. Pourtant la souris ne bouge pas. J'ai dû ajouter les deux Define avant le Include (merci BruNews) car sinon il ne trouvait pas INPUT. Et même comme ça il ne trouve pas
MOUSEEVENTF_VIRTUALDESK (c'est utile de le mettre dans mon cas?)
Cette ligne de la doc m'a intrigué :
Microsoft Windows Vista. This function fails when it is blocked by User Interface Privilege Isolation (UIPI). Note that neither
GetLastError nor the return value will indicate the failure was caused by UIPI blocking.
Vous croyez que ça vient de là? (J'utilise effectivement Vista). J'ai essayé de lancé l'exe en administrateur, ça ne changeait rien.
Merci d'avance, je tourne en rond là...
PS : je suis nouveau en C, merci d'être indulgent si je pose des questions bêtes/pique des codes/comprend pas tout tout faits :)