def presskey(self,code,speed=0.1): ''' Uses Quartz CoreGraphics to press key with arg code. ''' CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, code, True)) time.sleep(speed) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, code, False))
def trigger_map(self): CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCodeMap['n'], True)) time.sleep(0.001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCodeMap['n'], False)) time.sleep(0.001) self.map_opened = not self.map_opened
def trigger_mount(self): CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCodeMap['a'], True)) time.sleep(0.001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCodeMap['a'], False)) time.sleep(0.5) self.mounted = not self.mounted
def mouseRightClick(self): cursor = self.getCursorPosition() time.sleep(0.100) CGEventPost( kCGHIDEventTap, CGEventCreateMouseEvent(None, kCGEventRightMouseDown, (cursor.x, cursor.y), kCGMouseButtonRight)) CGEventPost( kCGHIDEventTap, CGEventCreateMouseEvent(None, kCGEventRightMouseUp, (cursor.x, cursor.y), kCGMouseButtonRight))
def shiftrightclick(self,posx,posy,speed=0.1): ''' Shift right clicks using Quartz CoreGraphics. If shift does not appear to be ''' CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(speed) self.rightclick(posx,posy) time.sleep(speed) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, False))
def KeyDown(k): keyCode, shiftKey = toKeyCode(k) time.sleep(0.0001) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, True)) time.sleep(0.0001) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, False)) time.sleep(0.0001)
def doubleClick(posx, posy, clickCount): theEvent = CGEventCreateMouseEvent(None, kCGEventLeftMouseDown, (posx, posy), kCGMouseButtonLeft) CGEventSetIntegerValueField(theEvent, kCGMouseEventClickState, clickCount) CGEventPost(kCGHIDEventTap, theEvent) CGEventSetType(theEvent, kCGEventLeftMouseUp) CGEventPost(kCGHIDEventTap, theEvent) CGEventSetType(theEvent, kCGEventLeftMouseDown) CGEventPost(kCGHIDEventTap, theEvent) CGEventSetType(theEvent, kCGEventLeftMouseUp) CGEventPost(kCGHIDEventTap, theEvent)
def mouseLeftClick(self): cursor = self.getCursorPosition() time.sleep(0.0001) CGEventPost( kCGHIDEventTap, CGEventCreateMouseEvent(None, kCGEventLeftMouseDown, (cursor.x, cursor.y), kCGMouseButtonLeft)) CGEventPost( kCGHIDEventTap, CGEventCreateMouseEvent(None, kCGEventLeftMouseUp, (cursor.x, cursor.y), kCGMouseButtonLeft)) time.sleep(0.0001)
def KeyPress(self, key): keyCode, shiftKey = self.toKeyCode(key) time.sleep(0.0001) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, True)) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, False)) time.sleep(0.0001) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(0.0001)
def keyPress(k): keyCode = toKeyCode(k) time.sleep(0.01) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, True)) time.sleep(0.01) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, False)) time.sleep(0.01)
def PressKey(keyCode): time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, True)) time.sleep(0.0001)
def ReleaseKey(keyCode): time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, False)) time.sleep(0.0001)
def scrollWheelUp(numTicks): for i in xrange(1, numTicks): time.sleep(.005) multiplier = 1 - (float(i) / numTicks) speed = 4 * multiplier event = CGEventCreateScrollWheelEvent(None, 0, 1, speed) CGEventPost(kCGHIDEventTap, event)
def key_up(k): key_code, shift_key = to_key_code(k) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, key_code, False)) time.sleep(0.0001)
def KeyUp(k): keyCode, shiftKey = toKeyCode(k) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, False)) time.sleep(0.0001)
def mouseEvent(type, posx, posy): theEvent = CGEventCreateMouseEvent( None, type, (posx,posy), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, theEvent)
def scroll_by(scroll_amt): if scroll_amt == 0: return global _scroll_amt, _scrolling _scroll_amt = scroll_amt #print(_scroll_amt) step = int(scroll_amt / abs(scroll_amt)) amt_scrolled = 0 _scrolling = True while amt_scrolled < abs(_scroll_amt): sleep(.005) #sleep(.01) multiplier = 1 - (float(amt_scrolled + 1) / scroll_amt) speed = 4 * multiplier * step event = CGEventCreateScrollWheelEvent(None, 0, 1, speed) CGEventPost(kCGHIDEventTap, event) amt_scrolled += 1 _scrolling = False
def _createMouseEvent(source, posX, posY): ''' Creates a moust event and adds it to the queue to be processed. ''' event = CGEventCreateMouseEvent(None, source, (posX, posY), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, event)
def RelativeMouseScroll( x_movement, y_movement): # Movements should be no larger than +- 10 scrollWheelEvent = CGEventCreateScrollWheelEvent( None, # No source kCGScrollEventUnitPixel, # We are using pixel units 2, # Number of wheels(dimensions) y_movement, x_movement) CGEventPost(kCGHIDEventTap, scrollWheelEvent)
def slow_key_press(k): key_code, shift_key = to_key_code(k) time.sleep(0.0001) if shift_key: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(0.05) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, key_code, True)) time.sleep(0.05) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, key_code, False)) time.sleep(0.05) if shift_key: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, False)) time.sleep(0.05)
def mouseEvent(type, *args): if len(args) == 2: posx, posy = args elif len(args) == 1 and isinstance(args[0], Point): posx, posy = args[0] else: raise Exception('Error! Invalid arguments for mouseEvent') CGEventPost( kCGHIDEventTap, CGEventCreateMouseEvent(None, type, (posx, posy), kCGMouseButtonLeft)) time.sleep(0.01)
def KeyPress(k): keyCode, shiftKey = toKeyCode(k) time.sleep(sleep_time) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, True)) time.sleep(sleep_time) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, True)) time.sleep(sleep_time) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, keyCode, False)) time.sleep(sleep_time) if shiftKey: CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 0x38, False)) time.sleep(sleep_time)
def mouseEvent(type, posx, posy): surgeon_process = filter(lambda x: x, [ x if x.get('NSApplicationName') == 'Surgeon Simulator 2013' else None for x in NSWorkspace.sharedWorkspace().launchedApplications() ])[0] #surgeon_process = filter(lambda x: x, [x if x.get('NSApplicationName') == 'Steam' else None for x in NSWorkspace.sharedWorkspace().launchedApplications()])[0] high_psn = surgeon_process.get('NSApplicationProcessSerialNumberHigh') low_psn = surgeon_process.get('NSApplicationProcessSerialNumberLow') surgeon_psn = (high_psn, low_psn) #surgeon_psn = (low_psn, high_psn) #print(surgeon_process) #print(surgeon_psn) # maybe change the first param "source" # Maybe get rid of the mousebuttonleft theEvent = CGEventCreateMouseEvent(None, type, (posx, posy), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, theEvent)
def set_position(x, y): event = CGEventCreateMouseEvent(None, kCGEventMouseMoved, (x, y), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, event)
def doEvent(eventObj): CGEventPost(kCGHIDEventTap, eventObj)
def KeyPress(self, k): time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, k, True)) time.sleep(0.0001) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, k, False)) time.sleep(0.0001)
def _mouse_event(type, x, y): event = CGEventCreateMouseEvent(None, type, (x, y), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, event)
def m_event(type, x, y, button=kCGMouseButtonLeft): event = CGEventCreateMouseEvent(None, type, (x, y), button) CGEventPost(kCGHIDEventTap, event)
def movemouse(x, y): theEvent = CGEventCreateMouseEvent(None, kCGEventMouseMoved, (x,y), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, theEvent)
def Post( event ): # Posts the event. I don't want to type "CGEventPost(kCGHIDEventTap," every time. CGEventPost(kCGHIDEventTap, event)