Merge pull request #175 from go-vgo/dev

use sendInput not keybd_event & mouse_event
This commit is contained in:
vz 2018-10-18 08:14:25 -04:00 committed by GitHub
commit 48a33f8a6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 5 deletions

View File

@ -103,7 +103,17 @@ void win32KeyEvent(int key, MMKeyFlags flags){
// scan |= 0x80;
// }
keybd_event(key, scan, flags, 0);
// keybd_event(key, scan, flags, 0);
INPUT keyInput;
keyInput.type = INPUT_KEYBOARD;
keyInput.ki.wVk = key;
keyInput.ki.wScan = scan;
keyInput.ki.dwFlags = flags;
keyInput.ki.time = 0;
keyInput.ki.dwExtraInfo = 0;
SendInput(1, &keyInput, sizeof(keyInput));
}
#endif

View File

@ -180,8 +180,8 @@ void toggleMouse(bool down, MMMouseButton button){
const CGPoint currentPos = CGPointFromMMPoint(getMousePos());
const CGEventType mouseType = MMMouseToCGEventType(down, button);
CGEventRef event = CGEventCreateMouseEvent(NULL,
mouseType, currentPos, (CGMouseButton)button);
mouseType, currentPos, (CGMouseButton)button);
CGEventPost(kCGSessionEventTap, event);
CFRelease(event);
#elif defined(USE_X11)
@ -189,7 +189,18 @@ void toggleMouse(bool down, MMMouseButton button){
XTestFakeButtonEvent(display, button, down ? True : False, CurrentTime);
XSync(display, false);
#elif defined(IS_WINDOWS)
mouse_event(MMMouseToMEventF(down, button), 0, 0, 0, 0);
// mouse_event(MMMouseToMEventF(down, button), 0, 0, 0, 0);
INPUT mouseInput;
mouseInput.type = INPUT_MOUSE;
mouseInput.mi.dx = 0;
mouseInput.mi.dy = 0;
mouseInput.mi.dwFlags = MMMouseToMEventF(down, button);
mouseInput.mi.time = 0;
mouseInput.mi.dwExtraInfo = 0;
mouseInput.mi.mouseData = 0;
SendInput(1, &mouseInput, sizeof(mouseInput));
#endif
}
@ -261,7 +272,9 @@ void scrollMouse(int scrollMagnitude, MMMouseWheelDirection scrollDirection){
/* Make scroll magnitude negative if we're scrolling down. */
cleanScrollMagnitude = cleanScrollMagnitude * scrollDirection;
event = CGEventCreateScrollWheelEvent(NULL, kCGScrollEventUnitLine, wheel, cleanScrollMagnitude, 0);
event = CGEventCreateScrollWheelEvent(NULL,
kCGScrollEventUnitLine, wheel, cleanScrollMagnitude, 0);
CGEventPost(kCGHIDEventTap, event);
#elif defined(USE_X11)