Comment faire pour déplacer la souris avec le c++

Je veux déplacer le curseur de la souris avec un c++ script. Je suis à l'aide de Visual C++ 2010 Express pour Windows 7 à l'intérieur de Parallels et j'ai créé une application console.

Je sais SetCursorPos méthode, mais c'est juste ne fonctionne pas (il ne fait rien).

J'ai réussi à simuler les clics avec SendInput mais il ne fait pas bouger la souris.

C'est mon code:

#include <Windows.h>
#include <Tlhelp32.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <time.h>
void mouseLeftClick(const int x, const int y);
//window
HWND hWindow;
int main()
{
//find window
hWindow = FindWindow(NULL, "Calculadora");
if (NULL == hWindow) {
OutputDebugStringA("Couldn't find application.");
}else{
if (!SetForegroundWindow(hWindow)) {
OutputDebugStringA("Couldn't set application to foreground.");
}else{
//click on 1
mouseLeftClick(20 265));
Sleep(500);
//click on 2
mouseLeftClick(60, 265);
Sleep(500);
}
}
return 0;
}
void mouseLeftClick(const int x, const int y)
{ 
//get the window position
RECT rect;
GetWindowRect(hWindow, &rect);
//calculate scale factor
const double XSCALEFACTOR = 65535 / (GetSystemMetrics(SM_CXSCREEN) - 1);
const double YSCALEFACTOR = 65535 / (GetSystemMetrics(SM_CYSCREEN) - 1);
//get current position
POINT cursorPos;
GetCursorPos(&cursorPos);
double cx = cursorPos.x * XSCALEFACTOR;
double cy = cursorPos.y * YSCALEFACTOR;
//calculate target position relative to application
double nx = (x + rect.left) * XSCALEFACTOR;
double ny = (y + rect.top) * YSCALEFACTOR;
INPUT Input={0};
Input.type = INPUT_MOUSE;
Input.mi.dx = (LONG)nx;
Input.mi.dy = (LONG)ny;
//set move cursor directly and left click
Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
SendInput(1,&Input,sizeof(INPUT));
}
Êtes-vous sûr que ce n'est pas le déplacer? Peut-être le logiciel de machine virtuelle immédiatement se déplace vers l'arrière. (Mouvement du curseur fonctions à l'intérieur de la machine virtuelle ne peut pas affecter le système hôte, bien sûr, afin que l'hôte pointeur de la souris est toujours au même endroit, c'était avant, au cours de la fenêtre de la machine virtuelle)
Montrer l'utilisation de votre code. Nous ne pouvons pas vous aider si nous ne voyons pas ce que vous avez déjà essayé.
Code ajouté dans la question
Comment êtes-vous essayer d'utiliser SetCursorPos? Comme pour SendInput, vous devriez probablement avoir 3 événements: Déplacer, Bouton enfoncé, Bouton de.
SetCursorPos ne fonctionne pas pour moi. Comme pour SendInput, tous ces 3 événements sont fait en une seule commande (comme on le voit dans les exemples sur le net)

OriginalL'auteur jerkan | 2012-06-30