**

一键成为“键盘侠”

**

今天阿冲给大家分享一个库(pynput)


在互联网高度发展的现代,各色各样的社交 app 层出不穷,人们在享受聊天的过程中,难免会出现口舌之争,而有时候对方说的很过分的时候,这时候我们就可以采用以牙还牙的方式怼回去,而我们嫌打字太麻烦的时候,这时候就可以考虑用程序来帮忙了,这次给大家带来的是用 python 快速发消息。


1 pynput 简介


pynput是python的一个第三方库,使用前需要安装,pynput的功能主要是对鼠标和键盘进行监听和控制,通过对键盘和鼠标的控制达到与人工操作达到相同的效果。

2 安装pynput


以windows为例,在cmd命令行中使用 pip对pynput进行安装,输入:pip install pynput 然后按下键盘的Enter键即开始安装,当命令行最后出现Successfully installed pynput-1.7.1 则说明pynput安装成功了。

一键成为“键盘侠”

3 导入pynput


以python官方的编译器为例(IDLE)

>>> import pynput

>>> import pynput as p

>>> from pynput import *

推荐使用这三种导入方式。


4 pynput用法


导入pynput库后,可以看到有两个对象,keyboard和mouse。完成这个程序只需要keyboard类,mouse类不做叙述。

一键成为“键盘侠”

通过keyboard = p.keyboard生成一个键盘对象,看看它有什么内容。

一键成为“键盘侠”

东西很多,分为两个大类Controller和Listener,今天咱们需要的是Controller类. 通过ctrl_keyboard = keyboard.Controller()实例化一个键盘控制类对象。ctrl_keyboard中有很多方法供咱们使用,例如press()方法。

一键成为“键盘侠”

运行后,我的编辑窗口就出现了一个"a",这个字母生成在哪里取决于,光标在哪里。

一键成为“键盘侠”

ctrl_keyboard.type()方法,type不仅有类型的意思,还有打字(type writer)的意思,所以这个方法的用法就是打印出括号里的文字,例如ctrl_keyboard.type(‘hello pynput’),运行截图如下。

一键成为“键盘侠”

这次我把光标放在了下面的输入框中,输出结果就出现在那里。 为模拟人的输入,我们还需要按下“Enter”键发送消息,但在press方法中输入perss('enter'),程序就会报错,enter属于长名字按钮,press()直接能操作的只能是一个字符,不必灰心,pynput早就为我们想好了解决办法,pynput提供了一个Key类,这个Key类里面装了键盘上的所有大于1个字符的按键,通过使用key = keyboard.Key生成一个key对象,key.enter,key.alt,key.f1,key.home...等等。 press()的作用是按下按钮,为了下次也能按下按钮,按钮按下后应当在释放按钮,release()横空出世,它们俩总是形影不离。


首先 其次
ctrl_keyboard.press(key.enter) ctrl_keyboard.release(key.enter)

5 time库辅助


咱们现在能模拟打字,模拟按enter键了。也就是说只需要把光标放在聊天框中,自动发消息能实现了,但往往咱们没有足够的时间把光标放在聊天框上,这时候就需要另一个库来帮帮咱们了——time库。


time库

咱们只需学习time库中的一个方法即可——sleep(),sleep顾名思义,就是睡觉,让计算机睡觉,括号里填入时间,单位为秒,用法:time.sleep(5),让程序停止工作5秒。


6 pynput实战


既然咱们的目的是当喷子,那么我咱们可以把想说的话写在一个文件夹里,截图如下。这些话在网上都能找到,实属不雅我打????了。

一键成为“键盘侠”

到时候咱们只需用python一条一条的读出来即可。
使用如下代码即可(相关用法不是本篇重点不做叙述)。其主要作用是将写脏话的文件打开拆开成一句一句的话储存到wen 这个变量中。

一键成为“键盘侠”

就在这时我的小号给我发来了消息。

一键成为“键盘侠”

show-time

一键成为“键盘侠”

相关代码截图如下:

一键成为“键盘侠”

7 pynput结束语


对pynput感兴趣的小伙伴呢,可以参考pypi社区的pynput介绍,pypi网址:https://pypi.org/project/pynput/

本文只是初步涉及到pynput,抛砖引玉,更多功能等待大家发掘,本篇由于时间仓促,本篇定有不少缺点,遗漏或错误,恳请广大读者不吝指正。


参考文献:

https://pypi.org/project/pynput/

相关文章: