编写一个程序、读取一个python源程序文件_用Python写一个自动肝双生视界的程序...

五级号新人第一次投稿,哪边没做好请批评指正

前几天双生视界公测了。身为程序猿一枚,想用自己独特的方式来蹭一下热度。奈何文笔不好,也就啰嗦一句。(我老婆时无忧真美!)

0.关于程序

说在最前面:这个不是外挂,不会修改账号数据以及向数据库虚假提交。这是一个模拟用户操作控制的程序。

关于屏幕监测的程序用编程语言实现起来不难,但是有一个弊端。就是监测时必须要把模拟器放在所有窗口的最前面并且需要聚焦,这样就没办法一边刷游戏一边做其他事情。

本程序完全可以把模拟器置于后面的窗口,完全不影响肝其他事情。

运行环境:

WIN10  64位

Visual Stdio 2019(占用空间较大可以用其他的Python IDE代替,如pycharm)

Python 3.7

雷电模拟器

程序源码 https://pan.baidu.com/s/1qstyjAHqJ3r4e0taKuqEDg  提取码a07y

一、安装Python运行环境

1、 VS2019

这里默认你装好了VS2019并下载好了源码。打开源码所在的文件夹,在边栏上选择Python环境->概述->选择包(pypi)

b.然后在“搜索PyPI和已安装的包”中,依次输入numpy,opencv-python,pywin32进行安装。安装时需要管理员权限。

2、pycharm

暂时还没试过,不过可以自行去网上搜pycharm环境配置,记得用pip安装这三个库就行,pass

二.源代码解释

不会Python的同学可以直接跳过

1.截取模拟器窗口图像

文件:findpic.py

def window_capture(filename)

不同的窗口有不同的句柄,通过句柄就可以定位到特定的窗口。

如:

需要定位的窗口

获取雷电模拟器窗口句柄

函数内之后的那一片代码是截取图像并保存。

2.读取图像并使用OpenCV进行识别

文件:main.py

def find(img,x,y,w,h,str)

使用SVM进行黄色按钮的识别。用于识别的文件以及训练好了,后缀为“.xml”。

进行识别的时候并不是整张图片进行识别,而是切片选取了特定区域进行按钮的识别。

def main()

程序的主函数。用于判断和选择这三个按钮该按哪个。

3.使用Sendmessage模拟鼠标的点击

文件click.py

def sendmsg()

内部语句用于模拟鼠标位置的点击

def get_child_windows(parent)

获取父窗口下子窗口的句柄。因为仅仅定位在父窗口是无法进行模拟点击,需定位在用于输入的子窗口。

三、调试及使用

经过第一步的配置,先打开雷电模拟器,运行main.py,如果没有报错,那么恭喜,可以用了。如果有报错,把问题放评论区或者私信我都行。

下面进行调试。

首先在main.py,main()中把click.sendmsg注释掉,如图:

打开游戏,运行程序。这时候会有三个小窗口。三个框里面就是截取的图像。然后调整模拟器窗口的大小,使各个按钮恰好在对于小窗口里面,如图:

然后保持模拟器大小不变,把#注释去掉就可以了正常运行了。

注意事项:使用脚本肝游戏时不要把模拟器最小化,不要与屏幕边缘有部分相交。,还有,跳过助战配置。

你可以新建一个桌面,如:

这样你就可以在完全不受游戏干扰的情况下学习工作了。

#END    写在最后

本人学生党一枚,编这程序花了两天左右的时间。并且这是我第一次投稿(萌新瑟瑟发抖)。

代码已经开源,但希望不要有人恶意使用。如有侵权,通知后会第一时间删除。

如果你喜欢,请支持我一下呀

你可能感兴趣的:(编写一个程序,读取一个python源程序文件)