如何使用 python 在 linux 和 windows 上检测背景中的按键组合?

How to detect key-press combinations in background on linux & windows with python?

如何在后台使用 python 检测 linux 和 windows 的按键组合?

例如,

when Ctrl+v is detected execute doThis() in background

when Tab is detected execute doThat() in background

如果你正在使用 python tkinter,有文件菜单。那么下面的代码可能会对你有所帮助。

from Tkinter import *
import sys
import Tkinter

class App(Tkinter.Tk):

    def __init__(self):
        Tkinter.Tk.__init__(self)
        menubar = Tkinter.Menu(self)
        fileMenu = Tkinter.Menu(menubar, tearoff=False)
        menubar.add_cascade(label="File", underline=0, menu=fileMenu)
        fileMenu.add_command(label="doThat", underline=1,
                             command=quit, accelerator="Ctrl+v")
        fileMenu.add_command(label="doThis", underline=1,
                             command=quit, accelerator="Tab")
        self.config(menu=menubar)

        self.bind_all("<Control-v>", self.doThat)
        self.bind_all("<Tab>", self.doThis)

    def doThat(self, event):
        print("Control v is pressed ...")

    def doThis(self, event):
        print("Tab is pressed...")

if __name__ == "__main__":
    app = App()
    app.mainloop()

在 windows 这可以使用 pyhook

在 ubuntu 我是在这个的帮助下完成的 pyxhook

编辑:Windows 和 Linux 的另一个很棒的库 - keyboard

pynput 最适合我。