时间:2021-05-22
之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库。
后来几经尝试,始终不能成功运行。原来它只支持 Python2 和 32 位的 Windows 系统。。。Excuse me?
于是在网上查找可行的替代方案,比如 pyHook 。呃,不合胃口。安装比较繁琐(有依赖库且不能通过 pip 命令安装),只支持 Windows 系统,况且又是十年前就没再更新的项目。。。看了下函数调用也算不上简洁直观。
后来又多番搜索,终于找到了一个名为keyboard 的 Python 库,可以绑定全局事件、录制及模拟键盘输入、设置热键等。
尤其是安装和使用足够简单,比较合我的心意(毕竟 Github 上将近 1.5K 的小星星)。
一、特性
其实我真的有点感觉,这才是我心目中比较“现代”的工具。
二、录制及模拟按键动作
就像前面提到的,安装 keyboard 的流程非常简单,无需考虑任何兼容性或者依赖问题,只需要一条简短的命令:
$ pip install keyboard可以使用下面的代码录制 10 秒钟的键盘事件,并将其回放一遍(即重复按下之前操作的按键):
import keyboardimport timekeyboard.start_recording()time.sleep(10)events = keyboard.stop_recording()keyboard.replay(events)可以使用如下代码制作一个简单的 “键盘录制器” (打印输出全局范围内的按键动作,并将按键顺序保存在文本文件中):
import keyboarddef print_pressed_keys(e): line = ', '.join(str(code) for code in keyboard._pressed_events) print(line) with open('keylogger.txt', 'a+') as f: f.write(line + '\n')keyboard.hook(print_pressed_keys)keyboard.wait()PS:上述代码中的 code 并不是对应按键的 ASCII 码,而是根据键盘布局为按键指定的数值(如 a 键为 30,b 键为 42 等等),可以通过自行测试确认具体的对应关系。
如同时按下两个或多个按键,则上述程序会以 code, code... 的形式输出。
三、热键捕获及绑定
可以使用如下代码录制热键并为该热键绑定上特定的触发事件:
import keyboardprint('Press and release your desired hotkey: ')hotkey = keyboard.read_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 录制键盘事件的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
常看到各种app应用中使用自定义的键盘,本例子中使用vue2实现个简单的键盘,支持在移动端和PC端使用实现效果:Keyboard.vue123符·{{key}}
一般来说键盘上的ADD就是就是加号键+,通常位于小键盘回车键上面。如果不是的话,可能使用的特殊键盘,可以查看键盘的说明书。 键盘(Keyboard)是用于操作
lctrl是leftctrl(键盘左边的CTRL键)。L表示左(left),M表示中(middle),R表示右(right)。 键盘(Keyboard)是用于
jquery键盘事件的使用方法详解jQuery处理键盘事件有三个函数,根据事件发生的顺序分别是:jquery代码:1.keydown();2.keyup();3
智能键盘是专业版支持字词联想,自带多款皮肤,支持在标准全键盘/T9键盘/紧凑键盘间切换,可在线下载多国词库,功能相当强大。 键盘(Keyboard)是用于操作