python3 键盘检测

萧楚容 2周前 12浏览 0评论

Python3可以使用模块来实现键盘检测。在Windows系统下,需要使用Win32api模块,而在Linux系统下,需要使用Xlib模块。

以下是使用Win32api模块进行键盘检测的代码:

import win32api
import win32con

def keyLogger():
    # 定义需要检测的键码列表
    special_keys = {win32con.VK_SHIFT, win32con.VK_CONTROL, win32con.VK_MENU}
    while True:
        for i in range(1, 255):
            if win32api.GetAsyncKeyState(i) == -32767:
                if i in special_keys:
                    print('[{}]'.format(win32api.GetKeyNameText(win32api.MapVirtualKey(i, 0) << 16)))
                else:
                    print(chr(i), end='')

if __name__ == '__main__':
    keyLogger()

以下是使用Xlib模块进行键盘检测的代码:

from Xlib import X, display

def keyLogger():
    # 获取当前的X服务器连接
    d = display.Display()
    # 创建一个窗口,不需要显示
    w = d.screen().root.create_window(0, 0, 1, 1, 0, X.CopyFromParent, X.InputOnly)
    # 监听所有键盘事件
    w.change_attributes(event_mask=X.KeyPressMask | X.KeyReleaseMask)
    while True:
        # 等待下一个事件
        event = d.next_event()
        if event.type == X.KeyPress:
            # 打印按键名称
            print(event.detail, event.type)

if __name__ == '__main__':
    keyLogger()