added win support for mouse like linux and mac
This commit is contained in:
parent
c159b1e110
commit
92bdacddca
|
@ -33,26 +33,25 @@ int main()
|
|||
|
||||
XInputSimulator &sim = XInputSimulator::getInstance();
|
||||
waitABit();
|
||||
waitABit();
|
||||
sim.mouseMoveTo(500,400);
|
||||
// waitABit();
|
||||
// sim.mouseMoveRelative(400, -100);
|
||||
// waitABit();
|
||||
// sim.mouseDown(1);
|
||||
// waitABit();
|
||||
// sim.mouseMoveRelative(0, 300);
|
||||
// waitABit();
|
||||
// sim.mouseUp(1);
|
||||
// waitABit();
|
||||
// //scroll down and up
|
||||
// sim.mouseScrollY(10);
|
||||
// waitABit();
|
||||
// sim.mouseScrollY(-10);
|
||||
// //scroll left and right
|
||||
// waitABit();
|
||||
// sim.mouseScrollX(10);
|
||||
// waitABit();
|
||||
// sim.mouseScrollX(-10);
|
||||
waitABit();
|
||||
sim.mouseMoveRelative(400, -100);
|
||||
waitABit();
|
||||
sim.mouseDown(1);
|
||||
waitABit();
|
||||
sim.mouseMoveRelative(0, 300);
|
||||
waitABit();
|
||||
sim.mouseUp(1);
|
||||
waitABit();
|
||||
//scroll down and up
|
||||
sim.mouseScrollY(10);
|
||||
waitABit();
|
||||
sim.mouseScrollY(-10);
|
||||
//scroll left and right
|
||||
waitABit();
|
||||
sim.mouseScrollX(10);
|
||||
waitABit();
|
||||
sim.mouseScrollX(-10);
|
||||
|
||||
|
||||
waitABit();
|
||||
|
|
|
@ -22,35 +22,68 @@
|
|||
#include "notimplementedexception.h"
|
||||
#include <iostream>
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
#define MOUSEEVENTF_HWHEEL 0x01000
|
||||
|
||||
XInputSimularotImplWin::XInputSimularotImplWin()
|
||||
{
|
||||
this->initCurrentMousePosition();
|
||||
}
|
||||
|
||||
void XInputSimularotImplWin::initCurrentMousePosition()
|
||||
{
|
||||
POINT p;
|
||||
if (GetCursorPos(&p))
|
||||
{
|
||||
this->currentX = p.x;
|
||||
this->currentY = p.y;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void XInputSimularotImplWin::mouseMoveTo(int x, int y)
|
||||
{
|
||||
std::cout << "move the mouse!\n";
|
||||
SetCursorPos(x, y);
|
||||
|
||||
this->currentX = x;
|
||||
this->currentY = y;
|
||||
}
|
||||
|
||||
void XInputSimularotImplWin::mouseMoveRelative(int x, int y)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
int newX = this->currentX + x;
|
||||
int newY = this->currentY + y;
|
||||
|
||||
SetCursorPos(newX, newY);
|
||||
|
||||
this->currentX = newX;
|
||||
this->currentY = newY;
|
||||
}
|
||||
|
||||
//TODO use the button from parameter list
|
||||
void XInputSimularotImplWin::mouseDown(int button)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
INPUT in={0};
|
||||
in.type = INPUT_MOUSE;
|
||||
in.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
|
||||
SendInput(1,&in,sizeof(INPUT));
|
||||
ZeroMemory(&in,sizeof(INPUT));
|
||||
}
|
||||
|
||||
//TODO use the button from parameter list
|
||||
void XInputSimularotImplWin::mouseUp(int button)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
|
||||
INPUT in={0};
|
||||
in.type = INPUT_MOUSE;
|
||||
in.mi.dwFlags = MOUSEEVENTF_LEFTUP;
|
||||
SendInput(1,&in,sizeof(INPUT));
|
||||
ZeroMemory(&in,sizeof(INPUT));
|
||||
}
|
||||
|
||||
//TODO use the button from parameter list
|
||||
void XInputSimularotImplWin::mouseClick(int button)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
this->mouseDown(button);
|
||||
//std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
this->mouseUp(button);
|
||||
|
@ -58,12 +91,48 @@ void XInputSimularotImplWin::mouseClick(int button)
|
|||
//kajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjf
|
||||
void XInputSimularotImplWin::mouseScrollX(int length)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
int scrollDirection = 1 * 50; // 1 left -1 right
|
||||
|
||||
if(length < 0){
|
||||
length *= -1;
|
||||
scrollDirection *= -1;
|
||||
}
|
||||
|
||||
for(int cnt = 0; cnt < length; cnt++)
|
||||
{
|
||||
INPUT in;
|
||||
in.type = INPUT_MOUSE;
|
||||
in.mi.dx = 0;
|
||||
in.mi.dy = 0;
|
||||
in.mi.dwFlags = MOUSEEVENTF_HWHEEL;
|
||||
in.mi.time = 0;
|
||||
in.mi.dwExtraInfo = 0;
|
||||
in.mi.mouseData = scrollDirection;// WHEEL_DELTA;
|
||||
SendInput(1,&in,sizeof(in));
|
||||
}
|
||||
}
|
||||
|
||||
void XInputSimularotImplWin::mouseScrollY(int length)
|
||||
{
|
||||
throw NotImplementedException();
|
||||
int scrollDirection = -1 * 50; // 1 up -1 down
|
||||
|
||||
if(length < 0){
|
||||
length *= -1;
|
||||
scrollDirection *= -1;
|
||||
}
|
||||
|
||||
for(int cnt = 0; cnt < length; cnt++)
|
||||
{
|
||||
INPUT in;
|
||||
in.type = INPUT_MOUSE;
|
||||
in.mi.dx = 0;
|
||||
in.mi.dy = 0;
|
||||
in.mi.dwFlags = MOUSEEVENTF_WHEEL;
|
||||
in.mi.time = 0;
|
||||
in.mi.dwExtraInfo = 0;
|
||||
in.mi.mouseData = scrollDirection;// WHEEL_DELTA;
|
||||
SendInput(1,&in,sizeof(in));
|
||||
}
|
||||
}
|
||||
|
||||
void XInputSimularotImplWin::keyDown(int key)
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
class XInputSimularotImplWin: public XInputSimulatorImpl
|
||||
{
|
||||
private:
|
||||
int currentX;
|
||||
int currentY;
|
||||
|
||||
void initCurrentMousePosition();
|
||||
|
||||
public:
|
||||
XInputSimularotImplWin();
|
||||
|
|
|
@ -91,8 +91,6 @@ void XInputSimulatorImplMacOs::mouseMoveRelative(int x, int y)
|
|||
//TODO use the button from parameter list
|
||||
void XInputSimulatorImplMacOs::mouseDown(int button)
|
||||
{
|
||||
//throw NotImplementedException();
|
||||
|
||||
CGEventRef mouseEv = CGEventCreateMouseEvent(
|
||||
NULL, kCGEventLeftMouseDown,
|
||||
CGPointMake(this->currentX, this->currentY),
|
||||
|
@ -107,8 +105,6 @@ void XInputSimulatorImplMacOs::mouseDown(int button)
|
|||
//TODO use the button from parameter list
|
||||
void XInputSimulatorImplMacOs::mouseUp(int button)
|
||||
{
|
||||
//throw NotImplementedException();
|
||||
|
||||
CGEventRef mouseEv = CGEventCreateMouseEvent(
|
||||
NULL, kCGEventLeftMouseUp,
|
||||
CGPointMake(this->currentX, this->currentY),
|
||||
|
@ -128,8 +124,6 @@ void XInputSimulatorImplMacOs::mouseClick(int button)
|
|||
//kajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjfkajsdölfkjasdölfkjasldökfjaölsdkjfalsdkjfalskdjfaldskjf
|
||||
void XInputSimulatorImplMacOs::mouseScrollX(int length)
|
||||
{
|
||||
//throw NotImplementedException();
|
||||
|
||||
int scrollDirection = -1; // 1 left -1 right
|
||||
|
||||
if(length < 0){
|
||||
|
@ -158,8 +152,6 @@ void XInputSimulatorImplMacOs::mouseScrollX(int length)
|
|||
|
||||
void XInputSimulatorImplMacOs::mouseScrollY(int length)
|
||||
{
|
||||
//throw NotImplementedException();
|
||||
|
||||
int scrollDirection = -1; // 1 down -1 up
|
||||
|
||||
if(length < 0){
|
||||
|
|
Loading…
Reference in New Issue