private CGMouseButton GetPressedCGButtons() { CGMouseButton pressedButtons = 0; if (GetMouseButtonState(MouseButton.Left)) { pressedButtons |= CGMouseButton.kCGMouseButtonLeft; } if (GetMouseButtonState(MouseButton.Middle)) { pressedButtons |= CGMouseButton.kCGMouseButtonCenter; } if (GetMouseButtonState(MouseButton.Right)) { pressedButtons |= CGMouseButton.kCGMouseButtonRight; } if (GetMouseButtonState(MouseButton.Forward)) { pressedButtons |= CGMouseButton.kCGMouseButtonForward; } if (GetMouseButtonState(MouseButton.Backward)) { pressedButtons |= CGMouseButton.kCGMouseButtonBackward; } return(pressedButtons); }
private void PostMouseEvent(CGEventType type, CGMouseButton cgButton) { var curPos = GetPosition(); var cgPos = new CGPoint(curPos.X, curPos.Y) - offset; var mouseEventRef = CGEventCreateMouseEvent(IntPtr.Zero, type, cgPos, cgButton); CGEventPost(CGEventTapLocation.kCGHIDEventTap, mouseEventRef); CFRelease(mouseEventRef); }
private void PostMouseEvent(CGEventType type, CGMouseButton cgButton) { var eventRef = CGEventCreate(); var curPos = GetCursorPosition(); var cgPos = new CGPoint(curPos.X, curPos.Y); var mouseEventRef = CGEventCreateMouseEvent(ref eventRef, type, cgPos, cgButton); CGEventPost(ref mouseEventRef, type, cgPos, cgButton); CFRelease(eventRef); CFRelease(mouseEventRef); }
public extern static bool GetButtonState(CGEventSourceStateID stateID, CGMouseButton button);
public CGEvent(CGEventSource source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton) { handle = CGEventCreateMouseEvent(source == null ? IntPtr.Zero : source.Handle, mouseType, mouseCursorPosition, mouseButton); }
extern static IntPtr CGEventCreateMouseEvent(IntPtr source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton);
public extern static CGEventRef CGEventCreateMouseEvent(CGEventSourceRef source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton);
private void SetMouseButtonState(MouseButton button, bool newState) { inputDictionary.UpdateState(button, newState); moveEvent = GetMoveEventType(); pressedButtons = GetPressedCGButtons(); }
public CGEvent (CGEventSource source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton) { handle = CGEventCreateMouseEvent (source == null ? IntPtr.Zero : source.Handle, mouseType, mouseCursorPosition, mouseButton); }
public extern static CGEvent CGEventPost(ref CGEvent source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton);
public CGEvent(CGEventSource?source, CGEventType mouseType, CGPoint mouseCursorPosition, CGMouseButton mouseButton) : base(CGEventCreateMouseEvent(source.GetHandle(), mouseType, mouseCursorPosition, mouseButton), true) { }
internal static void ToTypeAndButton(MOUSEEVENTF flags, out CGEventType type, out CGMouseButton button) { EventEntry e; if (EventTypes.TryGetValue((MOUSEEVENTF)((uint)flags & 0x1FFFF), out e)) { type = e.type; button = e.button; } else { type = CGEventType.Null; button = 0; } }
public static extern bool GetButtonState(CGEventSourceStateID stateID, CGMouseButton button);