基于pyautogui制作一个连点器
嗨!快乐的一天从一张超级美丽的风景图片开始,愿你每天都能顺心!
pyautogui的安装
前置条件:确保我们的电脑有python环境。
pyautogui是python的一个外置模块,需要我们手动安装!!!
在命令行行输入命令pip install pyautogui
由于博主已经安装过了,友友们安装可能会有进度条!
什么情况下会用到连点器
连点器是一个软件,主要是用在鼠标操作的,如果有在玩游戏或者是在平常的工作里,经常需要点击鼠标的某个确定的位置,这时候就可以使用一个连点器,这个连点器程序就会帮我们自动点击。
想必部分原神玩家也有因为过剧情时总是要点击而不能跳过而烦恼吧,那么今天博主将带领大家从代码到程序再到最后在游戏内实现。
代码部分
- 导包
import pyautogui
import time
由于程序运行时间速度非常快,所以我们需要时间库来减缓程序运行的时间。
- 阻止故障保护程序
pyautogui.FAILSAFE =False
由于我们是在游戏中一直挂着这个后台程序,而pyautogui库在当鼠标甩至屏幕的四个角时会触发保护机制,这个时候如果没有写异常处理,终端就会报错。为了防止这一现象出现,我们手动将其关掉。
- 设置启动条件
while True:
b=str(pyautogui.position())
if b=='Point(x=1919, y=1079)':
time.sleep(1)
1、由于是连点器,那么循环必然少不了。
2、pyautogui.position()这个方法是获取当前鼠标的坐标的位置,返回的是元组类型,为了方便我将他转为字符串型,并用变量保存。
由于博主已经习惯甩至右下角了,博主的电脑像素是1920,1080。
3、所以这串代码就是将鼠标甩至右下角时,程序开始启动。
- 测量连续点击的位置
接下来我们截一张图片来查看他的位置
博主用的Snipaste工具来测量的,或者用ps工具来测量像素值
博主就用已经测好的数据开始写代码了
while True:
time.sleep(0.1)
pyautogui.click(1380,810)
a=str(pyautogui.position())
if a!='Point(x=1380, y=810)':
break
测好的像素值是1380,810。
pyautogui.click()的作用是连续点击鼠标左键。
后面的代码是如果手动移开了就跳出当前循环,停止点击。
- 总代码
好了!其实代码就只有这么点,是不是很简单,接下来看下总代码。
import time
import pyautogui
pyautogui.FAILSAFE =False
while True:
b=str(pyautogui.position())
if b=='Point(x=1919, y=1079)':
time.sleep(1)
while True:
time.sleep(0.1)
pyautogui.click(1380,810)
a=str(pyautogui.position())
if a!='Point(x=1380, y=810)':
break
if b=='Point(x=1919, y=0)':
break
做成可执行的程序
这里有两个文件,一个是py文件,一个是我们想要的图标图片!在此处打开我们的命令行。(注意:此目录必须是纯英文)
想要做成exe文件先要下载pyinstaller
输入命令pip install pyinstaller
接下来输入命令pyinstaller -F -w -i falushan.ico auto.py
-F 产生一个文件用于部署,用于生成一个单独运行的exe文件。
-w 使用windows子系统执行,当程序启动的时候不会打开命令行(只对windows有效)
-i falushan.ico 设置程序图标
auto.py py文件名
如果出现successfully代表安装成功!
会多出来以下文件,我们想要的exe文件就在dist文件夹里。
注:此程序是个后台程序,可以打开任务管理器查看是否运行。
注意事项
我们使用的图片必须为ico文件。如果是png或者jpg等文件直接重命名修改后缀也是不可以的。
那要怎么修改呢?
我们可以打开这个链接
修改成ico图片
https://onlineconvertfree.com/convert-format/png-to-ico/#google_vignette
点击CHOOSE FILE
转成ico文件下载即可。
感兴趣的友友们可以去试试哦!(这里以原神为例子,其他游戏当然也可以。)
结语
本次分享就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区留言,如果给小伙伴们带来了一些收获,请留下你的小赞,你的点赞和关注将会成为博主分享每日学习的动力。