SHOW:
|
|
- or go back to the newest paste.
| 1 | #! /usr/bin/env python | |
| 2 | # dependancy: https://launchpad.net/python-uinput/ | |
| 3 | ||
| 4 | # http://i.imgur.com/KwU6s.png | |
| 5 | ||
| 6 | import uinput | |
| 7 | ||
| 8 | from time import sleep | |
| 9 | ||
| 10 | - | def char2key(c): |
| 10 | + | |
| 11 | - | return eval('uinput.KEY_' + c)
|
| 11 | + | """Creates a virtual keyboard which can emulate a real keyboard""" |
| 12 | ||
| 13 | def __init__(self, cs): | |
| 14 | - | def __init__(self, keyboard): |
| 14 | + | self.events = dict((i, self.c2key(i)) for i in cs) |
| 15 | - | self.keyboard = uinput.Device(tuple(char2key(i) for i in keyboard)) |
| 15 | + | self.keyboard = uinput.Device(tuple(self.events.values())) |
| 16 | ||
| 17 | # There is a delay before the keyboard starts working | |
| 18 | - | key = char2key(c) |
| 18 | + | # At an order of magnitude of -2 |
| 19 | - | self.keyboard.emit(key, 1) |
| 19 | + | sleep(1e-1) |
| 20 | ||
| 21 | def c2key(self, c): | |
| 22 | - | key = char2key(c) |
| 22 | + | return eval('uinput.KEY_' + c.upper())
|
| 23 | - | self.keyboard.emit(key, 0) |
| 23 | + | |
| 24 | def press(self, c): | |
| 25 | self.keyboard.emit(self.events[c], 1) | |
| 26 | - | keyboard = Keyboard(["Q", "W", "O", "P"]) |
| 26 | + | |
| 27 | - | keyboard.press("W") # Press 'W'
|
| 27 | + | |
| 28 | - | sleep(0.1) # Wait 100 ms |
| 28 | + | self.keyboard.emit(self.events[c], 0) |
| 29 | - | keyboard.press("O") # Press 'O'
|
| 29 | + | |
| 30 | - | sleep(0.1) # Wait 100 ms |
| 30 | + | |
| 31 | - | keyboard.release("O") # Release 'O'
|
| 31 | + | keyboard = Keyboard(["q", "w", "o", "p"]) |
| 32 | - | keyboard.release("W") # Release 'W'
|
| 32 | + | |
| 33 | - | sleep(0.1) # Wait 100 ms |
| 33 | + | while 1: |
| 34 | - | keyboard.press("Q") # Press 'Q'
|
| 34 | + | keyboard.press("w") # Press 'W'
|
| 35 | - | keyboard.release("P") # Release 'P'
|
| 35 | + | sleep(1e-1) # Wait 100 ms |
| 36 | - | sleep(0.2) # Wait 200 ms |
| 36 | + | keyboard.press("o") # Press 'O'
|
| 37 | - | keyboard.press("P") # Press 'P'
|
| 37 | + | sleep(1e-1) # Wait 100 ms |
| 38 | - | keyboard.release("Q") # Release 'Q'
|
| 38 | + | keyboard.release("o") # Release 'O'
|
| 39 | - | sleep(0.1) # Wait 100 ms |
| 39 | + | keyboard.release("w") # Release 'W'
|
| 40 | - | keyboard.release("P") # Release 'P'
|
| 40 | + | sleep(1e-1) # Wait 100 ms |
| 41 | - | keyboard.press("P") # Press 'P'
|
| 41 | + | keyboard.press("q") # Press 'Q'
|
| 42 | - | sleep(0.1) # Wait 100 ms |
| 42 | + | keyboard.release("p") # Release 'P'
|
| 43 | - | qwop() |
| 43 | + | sleep(2e-1) # Wait 200 ms |
| 44 | keyboard.press("p") # Press 'P'
| |
| 45 | keyboard.release("q") # Release 'Q'
| |
| 46 | sleep(1e-1) # Wait 100 ms | |
| 47 | keyboard.release("p") # Release 'P'
| |
| 48 | keyboard.press("p") # Press 'P'
| |
| 49 | sleep(1e-1) # Wait 100 ms | |
| 50 | ||
| 51 | if __name__ == '__main__': | |
| 52 | qwop() |