如何在Python中确定键盘按键的字节和值

0 投票
1 回答
981 浏览
提问于 2025-04-18 10:18

使用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 12813 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)

撰写回答