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() |