告别点点点用Python制作鼠标连点器
大家好,欢迎收看思路实验室出品的Python入门教程,我是室长。
很多同学想要学习Python就是因为它可以实现各种自动化。实际上这种自动化不仅限于生成个文档,计算个数据这样的操作,还可以用来自动化地操作电脑。说到自动化操作电脑,这种应用类似于网络游戏的“外挂”,就是按照程序设定的方式来模拟鼠标键盘的操作。当然,使用外挂涉嫌违法,但对于很多不影响其他人的情况(比如玩单机游戏、处理同一类型的数据、执行大量重复的操作),我们还是可以使用这样的自动化程序来提高我们的效率的。
这些年尤其流行一种点击游戏,靠着鼠标点击就可以获得资源进行升级。其中CookieClicker是一个历史悠久而又非常有名的点击游戏。今天室长就给大家介绍一个可以进行自动化操作的pyautogui模块,并用它来制作一个鼠标连点器,用来代替鼠标在游戏中实现点点点。
首先还是安装和导入,pyautogui的安装名和导入名都是pyautogui,我们可以给它重命名为pag:
我们需要在游戏中不断地点击那块巨大的饼干,那么问题就来了,如何告诉电脑我要点击那块饼干?有一个思路是我把饼干截个图,告诉系统照着这个截图上的图案去点就行了。另一个思路是我找到饼干的位置,告诉系统直接点击这个位置就行了。
这两种思路在pyautogui中都是可以实现的,而且实现的方法非常接近。但是具体选择哪一种方法还需要考虑到实际情况。一方面,电脑识别位置非常简单直接,就是按照坐标来,而识别图片就要麻烦一些了,需要一些比较耗时的处理,速度较慢;另一方面,游戏中这个巨大饼干的位置是不变的,所以我们一次找准位置就可以一直使用这个坐标,如果这个饼干的位置始终在变化那么我们就不得不使用截图的方法了。
根据上边的分析不难看出,找好饼干的坐标是最优解。那么我们怎么获取坐标呢?在pyautogui中我们可以使用position方法来获取鼠标的位置,我们把鼠标放置在饼干的位置上再执行这一方法就能够获得饼干的坐标。但是这样就不能使用鼠标右键运行代码了,我们可以使用快捷键Ctrl+Shift+F10运行代码,注意一定要PyCharm窗口在最上方时快捷键才有效:
可以看到饼干的坐标为(,),我们记下这组数字。
现在就没有什么困难了,我们只要编写程序让系统不断重复地点击(,)就可以了,这里需要使用的是click方法。click方法本身支持根据坐标点击和根据截图点击。根据坐标点击时需要注意的是横坐标和纵坐标是两个不同的参数,不应该把横纵坐标作为一个元组传入到方法中:
快到飞起有木有!这下终于可以解放双手啦!
哎等等,鼠标一直点在这里,没法切换到PyCharm里结束程序了啊!关机也关不了了啊!怎么办啊?只能直接拔电源了吗?
使用whileTrue来循环的时候最怕出这种事,不过好在pyautogui预想感知到了这种危险的存在,预先开启了一个安全模式。这时候你只需要用力把鼠标光标甩到屏幕的角上,程序就会自动结束:
总算是脱险了,可见这种无限循环的语句时常伴随着危险,写的时候要千万小心。
只使用了两个方法,一个简单的鼠标连点器就编写完成了。虽然关闭的时候出了些小状况,但是基本的目标还是实现了的。如果有兴趣的话还可以对其进行优化,让我们可以通过设置条件或者热键的方式来启动和停止连点器。但这就不在pyautogui的能力范畴之内了,我们需要其他的模块来添加这样的功能。
实际上pyautogui的功能远不止鼠标连点这样,它可以处理各种各样的输入操作。即使鼠标操作,也可以细分为移动,左键点击、右键点击、滚轮点击、双击、滚轮转动、拖动等各种更加具体的操作,pyautogui针对每种操作也有单独的操作方法。可以说使用pyautogui可以复刻任何人在电脑上的操作。所以使用好pyautogui真的可以省去很多机械性的重复劳动,实现解放双手的效果。关于pyautogui的各种方法室长后期会给大家进行更加细致的讲解。
最后,使用pyautogui送给大家一朵小红花:
想要了解如何实现的请多多
转载请注明:http://www.abuoumao.com/hyfz/1374.html