如何在Python中确定键盘按键的字节和值
使用PyKeylogger的代码(这个代码用到了Xlib),我可以检测到大部分键盘按键的使用,但我在检测向上箭头键时遇到了困难。可以在键盘映射中添加类似下面的代码来检测大部分箭头键:
14: {
0b00000001: ("<pageup>", "shift-pageup"),
0b00000010: ("<left>", "shift-left"),
0b00000100: ("<right>", "shift-right"),
0b00001000: ("<end>", "shift-end"),
0b00010000: ("<down>", "shift-down"),
0b00100000: ("<pagedown>", "shift-PgDn"),
0b01000000: ("<insert>", "shift-insert")
},
我该如何检测向上箭头键呢?
1 个回答
1
上箭头
13: {
0b10000000: ("<up>", "shift-up")
},
我得到了PyKeylogger的源代码,并且找到了可以获取任何按键代码的地方。
看看下面代码中的print i, o
。它给了我13 128
(13 0b10000000
)作为上箭头的代码。
# aggregate the pressed keys
pressed = []
for i, k in enumerate(keypresses_raw):
o = ord(k)
if o:
#print i, o # this line print code for any pressed key
for byte,key in key_mapping.get(i, {}).iteritems():
if byte & o:
if isinstance(key, tuple): key = key[shift or caps_lock_state]
pressed.append(key)