1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <iostream>
#include <windows.h>
using namespace std;
const int ButaoEsquerdo=0;
const int ButaoDireito=1;
const int ButaoMeio=2;
void AccaoDoRato(int x, int y, HWND Destino, int Butao=0)
{
//obter a janela actual
HWND JanelaActual = GetForegroundWindow();
//Obter a posiçao actual do rato
POINT PosicaoCursor;
GetCursorPos(&PosicaoCursor);
Sleep(1000);
//alterar a possiçao do rato
POINT CursorNovaPosicao;
CursorNovaPosicao.x=x;
CursorNovaPosicao.y=y;
ClientToScreen(Destino,&CursorNovaPosicao);
SetCursorPos(CursorNovaPosicao.x,CursorNovaPosicao.y);
//enviar a açao do rato
INPUT Input={0};
// left down
Input.type = INPUT_MOUSE;
if(Butao==ButaoEsquerdo)
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
else if(Butao==ButaoDireito)
Input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
else if(Butao==ButaoDireito)
Input.mi.dwFlags = MOUSEEVENTF_MIDDLEDOWN;
SendInput(1,&Input,sizeof(INPUT));
// left up
ZeroMemory(&Input,sizeof(INPUT));
Input.type = INPUT_MOUSE;
if(Butao==ButaoEsquerdo)
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
else if(Butao==ButaoDireito)
Input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
else if(Butao==ButaoDireito)
Input.mi.dwFlags = MOUSEEVENTF_MIDDLEUP;
SendInput(1,&Input,sizeof(INPUT));
Sleep(1000);
//voltar á janela que estava a usar
SetFocus(JanelaActual);
//voltar á posiçao do rato
SetCursorPos(PosicaoCursor.x,PosicaoCursor.y);
}
int main()//handle, x, y
{
HWND test=GetForegroundWindow();
ShowWindow(test,SW_MINIMIZE);
AccaoDoRato(1,1, test,1);
ShowWindow(test,SW_RESTORE);
return 0;
}
|