当前位置:  开发笔记 > 编程语言 > 正文

是否有跨平台的python低级API来捕获或生成键盘事件?

如何解决《是否有跨平台的python低级API来捕获或生成键盘事件?》经验,为你挑选了2个好方法。

我正在尝试编写一个跨平台的python程序,它将在后台运行,监视所有键盘事件,当它看到一些特定的快捷方式时,它会生成一个或多个自己的键盘事件.例如,将Ctrl- @映射到"my.email@address"可能很方便,因此每次某个程序询问我的电子邮件地址时,我只需要输入Ctrl- @即可.

我知道这些程序已经存在,我正在重新发明轮子......但我的目标只是了解有关低级键盘API的更多信息.此外,这个问题的答案可能对其他程序员有用,例如,如果他们想要启动需要密码的SSH连接,而不使用pexpect.

谢谢你的帮助.

注意:有一个类似的问题,但它仅限于Windows平台,并且不需要python.我正在寻找跨平台的python api.还有其他与键盘事件有关的问题,但显然他们对系统范围的键盘事件不感兴趣,只是特定于应用程序的键盘快捷键.

编辑:我应该在这里增加一个声明:我不是想写一个键盘记录.如果我需要一个键盘记录器,无论如何我都可以从网上下载一个.;-)



1> Aaron Digull..:

没有这样的API.我的解决方案是编写一个帮助器模块,根据其值使用不同的帮助器os.name.

在Windows上,使用Win32扩展.

在Linux上,事情有点复杂,因为真正的操作系统可以保护用户不受键盘记录程序的影响[*].所以在这里,你需要一个root进程来监视其中一个句柄/dev/input/.你最好的选择可能是寻找下面/dev/input/by-path/包含字符串"kbd"或条目的条目"keyboard".这应该适用于大多数情况.

[*]:Jeez,当我启动一个挂钩键盘事件的Python程序时,甚至我的病毒/木马扫描程序都会抱怨...



2> 小智..:

作为编写原始pykeylogger linux端口的人,我可以说没有真正的跨平台端口.基本上我重写了pyhook API,用于使用记录扩展从xserver本身捕获的键盘事件.当然,这假设记录扩展在那里,加载到x服务器.

从那里开始,它基本上只是检测你是在Windows上还是linux上,然后为操作系统加载正确的模块.其他一切都应该是相同的.

在pyxhook.py中查看pykeylogger源代码和implimentation.否则,只需加载该模块或pyhook,具体取决于操作系统.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有