pythonkeyboard⽅法_python偷懒技巧——使⽤keyboard录制
键盘事件
之前在某本书上看到⼀个程序,可以通过 Python 记录下全局范围内的键盘事件,使⽤的是 ctypes 库。
后来⼏经尝试,始终不能成功运⾏。原来它只⽀持 Python2 和 32 位的 Windows 系统。。。Excuse me?
于是在⽹上查可⾏的替代⽅案,⽐如 pyHook 。呃,不合胃⼝。安装⽐较繁琐(有依赖库且不能通过 pip 命令安装),只⽀持 Windows 系统,况且⼜是⼗年前就没再更新的项⽬。。。看了下函数调⽤也算不上简洁直观。
后来⼜多番搜索,终于到了⼀个名为keyboard 的 Python 库,可以绑定全局事件、录制及模拟键盘输⼊、设置热键等。
尤其是安装和使⽤⾜够简单,⽐较合我的⼼意(毕竟 Github 上将近 1.5K 的⼩星星)。
⼀、特性
全局范围内的键盘事件绑定。即程序可以后台运⾏,捕捉其他软件下的按键动作。
跨平台,⽀持 Windows 、Linux 以及 MacOS 系统。⽀持 Python2 和 Python3 。
纯 Python 代码,⽆需编译 C 语⾔模块。⽆依赖库,安装简单(只是复制⽂件就可以)。
通过独⽴的线程捕捉事件,不阻塞主程序的运⾏。
很详细的⽂档,参见项⽬主页的 README 。
其实我真的有点感觉,这才是我⼼⽬中⽐较“现代”的⼯具。
⼆、录制及模拟按键动作
就像前⾯提到的,安装 keyboard 的流程⾮常简单,⽆需考虑任何兼容性或者依赖问题,只需要⼀条简短的命令:
$ pip install keyboard
可以使⽤下⾯的代码录制 10 秒钟的键盘事件,并将其回放⼀遍(即重复按下之前操作的按键):
import keyboard
import time
keyboard.start_recording()
time.sleep(10)
events = keyboard.stop_recording()
可以使⽤如下代码制作⼀个简单的 “键盘录制器” (打印输出全局范围内的按键动作,并将按键顺序保存在⽂本⽂件中):
import keyboard
def print_pressed_keys(e):
python安装教程非常详细line = ', '.join(str(code) for code in keyboard._pressed_events)
print(line)
with open('', 'a+') as f:
f.write(line + '\n')
keyboard.hook(print_pressed_keys)
keyboard.wait()
PS:上述代码中的 code 并不是对应按键的 ASCII 码,⽽是根据键盘布局为按键指定的数值(如 a 键为 30,b 键为 42 等等),可以通过⾃⾏测试确认具体的对应关系。
如同时按下两个或多个按键,则上述程序会以 code, 的形式输出。
三、热键捕获及绑定
可以使⽤如下代码录制热键并为该热键绑定上特定的触发事件:
import keyboard
print('Press and release your desired hotkey: ')
hotkey = ad_hotkey()
print('Hotkey selected: ', hotkey)
def on_triggered():
print("Triggered!")
keyboard.add_hotkey(hotkey, on_triggered)
print("Press ESC to stop.")
其他的使⽤⽅式就不再⼀⼀列举了,可以参考 keyboard 项⽬的 Github 主页 。
⼏种常见的使⽤⽰例也已经包含在项⽬代码的 examples ⽬录下。
以上就是python 偷懒技巧——使⽤ keyboard 录制键盘事件的详细内容,更多关于python keyboard 录制键盘事件的资料请关注我们其它相关⽂章!
本⽂标题: python 偷懒技巧——使⽤ keyboard 录制键盘事件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。