def double_click(self, x, y, button_name=LEFT_BUTTON, click_interval=0.5): MacUtils.verify_xy_coordinates(x, y) MacUtils.verify_mouse_button_name(button_name, self._SUPPORTED_BUTTON_NAMES) if button_name == self.LEFT_BUTTON: button = CG.kCGMouseButtonLeft down = CG.kCGEventLeftMouseDown up = CG.kCGEventLeftMouseUp if button_name == self.RIGHT_BUTTON: button = CG.kCGMouseButtonRight down = CG.kCGEventRightMouseDown up = CG.kCGEventRightMouseUp # http://www.codeitive.com/0iJqgkejVj/performing-a-double-click-using-cgeventcreatemouseevent.html event = CG.CGEventCreateMouseEvent(None, down, (x, y), button) CG.CGEventPost(CG.kCGSessionEventTap, event) CG.CGEventSetType(event, up) CG.CGEventPost(CG.kCGSessionEventTap, event) CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2) # https://msdn.microsoft.com/en-us/library/windows/desktop/ms646263%28v=vs.85%29.aspx sleep(click_interval) CG.CGEventSetType(event, down) CG.CGEventPost(CG.kCGSessionEventTap, event) CG.CGEventSetType(event, up) CG.CGEventPost(CG.kCGSessionEventTap, event)
def double_click(self, x, y, button_name=LEFT_BUTTON): MacUtils.verify_xy_coordinates(x, y) MacUtils.verify_mouse_button_name(button_name, self._SUPPORTED_BUTTON_NAMES) if button_name == self.LEFT_BUTTON: button = CG.kCGMouseButtonLeft down = CG.kCGEventLeftMouseDown up = CG.kCGEventLeftMouseUp if button_name == self.RIGHT_BUTTON: button = CG.kCGMouseButtonRight down = CG.kCGEventRightMouseDown up = CG.kCGEventRightMouseUp # http://www.codeitive.com/0iJqgkejVj/performing-a-double-click-using-cgeventcreatemouseevent.html event = CG.CGEventCreateMouseEvent(None, down, (x, y), button) CG.CGEventPost(CG.kCGHIDEventTap, event) CG.CGEventSetType(event, up) CG.CGEventPost(CG.kCGHIDEventTap, event) CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2) CG.CGEventSetType(event, down) CG.CGEventPost(CG.kCGHIDEventTap, event) CG.CGEventSetType(event, up) CG.CGEventPost(CG.kCGHIDEventTap, event)
def double_click(self, x, y, delay=DELAY_IN_MOUSE_CLICK): event = self._mouse_event(self.buttons['left']['down_event'], x, y, self.buttons['left']['button']) CG.CGEventSetType(event, self.buttons['left']['up_event']) CG.CGEventPost(CG.kCGHIDEventTap, event) CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2) CG.CGEventSetType(event, self.buttons['left']['down_event']) CG.CGEventPost(CG.kCGHIDEventTap, event) CG.CGEventSetType(event, self.buttons['left']['up_event']) CG.CGEventPost(CG.kCGHIDEventTap, event)