【发布时间】:2016-05-18 16:15:03
【问题描述】:
我知道在后台处理它是一件非常困难的事情,但我正在寻找的是一个记录按键的程序,以及按键之间需要多少时间。我所调查的内容都无法在后台记录或实际工作。
编辑:
import win32con, ctypes, ctypes.wintypes
def esc_pressed():
print("Hotkey hit!")
ctypes.windll.user32.RegisterHotKey(None, 1, 0, 0xDD) # this binds the ']' key
try:
msg = ctypes.wintypes.MSG()
ctypes.windll.user32.GetMessageA
while ctypes.windll.user32.GetMessageA(ctypes.byref(msg), None, 0, 0) != 0:
if msg.message == win32con.WM_HOTKEY:
esc_pressed()
ctypes.windll.user32.TranslateMessage(ctypes.byref(msg))
ctypes.windll.user32.DispatchMessageA(ctypes.byref(msg))
finally:
ctypes.windll.user32.UnregisterHotKey(None, 1)
这允许程序在后台运行,但它使用您绑定的输入字符,而不是拾取它。我仍然需要确保输入的字符到达焦点所在的窗口。
【问题讨论】:
-
@ValentinLorentz,对不起,它在后台对我不起作用。查看绑定,但它们将输入从焦点窗口中移开
-
你不能只用一个线程吗?
-
@ValentinLorentz 我一直在研究它,但对我来说没有任何意义的东西实际上有效或可以格式化为 while 循环
标签: python-3.x keypress