写在前面的话

身为一名计算机专业的懒鬼和明日方舟三年老博士(悲,在学习编程之后便一直有想法做一个脚本来解放我的双手。奈何此前一直没有多余的时间,放了假也是泡在网吧里。这学期接触了pyautogui库后,又恰逢期中考试结束,就萌生了写个脚本的想法,在经历各种艰难困苦之后,历时两星期半,完成了初步的脚本制作。

本脚本基于

import pyautogui
import time
from win32 import win32gui,win32api
import win32con

使用的模拟器为雷电模拟器(可更换,没打广告)

使用的编程平台vscode2022

思路

初始化

 print("初始化正在进行中")a = pyautogui.prompt(text = "1. 激进策略(高级芯片),2.保守策略(普通芯片)",title = "请选择策略")b = pyautogui.password(text = '请输入验证口令',title = "源石访问验证",mask = "*")MoveAndClick('picture\search cusor.jpg',0.9)pyautogui.press('l')pyautogui.press('d')pyautogui.press('m')pyautogui.press('n')pyautogui.press('q')time.sleep(1)pyautogui.press('space')time.sleep(1)try:MoveAndClick('picture\Simulator.jpg',0.9)except:print("请将输入法切换小写或安装雷电模拟器")time.sleep(8)hwnd = change('雷电模拟器')#change为自定义函数

这一段思路为从搜索栏找到图片

并点击,然后使用库中对键盘的操作来搜索模拟器,再次点击。

点击函数

def MoveAndClick(a,c):x,y = pyautogui.locateCenterOnScreen(a,confidence=c)#confidence为图片可信度pyautogui.click(x,y)time.sleep(1)

Change 函数

def foo(hwnd,mouse):#获取当前标题global titlesif win32gui.IsWindow(hwnd) and  win32gui.IsWindowEnabled(hwnd) and  win32gui.IsWindowVisible(hwnd):#窗口存在,可视且窗口可使用titles.add( win32gui.GetWindowText(hwnd))#获取窗口标题
def change(Name):#本含要求要有元组接收win32gui.EnumWindows(foo, 0)#枚举当前窗口lt = [t for t in titles if t]lt.sort()for t in lt:  if(t.find(Name)) >= 0: hwnd = win32gui.FindWindow(None, t)#得到窗口句柄#print(hwnd)#得到句柄win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,0,0,2000,1000,win32con.SWP_SHOWWINDOW)#win32con.HWND_TOPMOST将窗口至于所有窗口的最顶层,显示窗口hwnd = win32gui.FindWindow(None, t)#得到窗口句柄size = win32gui.GetWindowRect(hwnd)#获取窗口位置,返回左上角坐标和高及宽return hwnd
#------------------------------------------------

随后使用窗口句柄将模拟器放置在指定位置(方便后期图像识别取材及图像识别)(人话:固定位置,图长得一样,匹配成功率高)

 time.sleep(3)try:MoveAndClick(r'\Arknight\picture\_20221123000957.jpg',0.8)#这里有一个问题,当前目录要加\except:try:print(' 当前神经传输存在波动')time.sleep(10)MoveAndClick(r'\Arknight\picture\_20221123000957.jpg',0.8)except TypeError:print('请检查精神状况')time.sleep(14)try:#检查更新MoveAndClick('\Arknight\picture\Start Arknight.jpg',0.9)except:print('检测到终端更新')time.sleep(10)try:MoveAndClick('\Arknight\picture\Start Arknight.jpg',0.9)except:passtime.sleep(20)

模拟点击明日方舟图标

模拟点击开始图标

接下来检查签到,检查系统公告,检查邮件,最后返回句柄和两个值

try:#检查月卡MoveAndClick('\Arknight\picture\daily sup.jpg',0.8)except:passtime.sleep(8)Is_Daily()time.sleep(8)Is_System_Bulletin()print('神经链接完成')time.sleep(8)Check_Email()print('邮件检查完成')print('初始化完成')#初始化调试完成return hwnd,a,b

Init_Exit函数 ——————————————————————————

def Init_Exit():pyautogui.press('esc')time.sleep(1)

按下一次esc键后休眠1秒

————————————————————————————————-——————

Is_Daily函数————————————————————

def Is_Daily():#签到初始化函数try:#检查每日签到x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\Every Day.jpg',confidence=0.8)Init_Exit()except:pass

在全屏范围内查找

若存在则使用Init_Exit()函数退出

————————————————————————————————

Is_System_Bulletin函数————————————————————

def Is_System_Bulletin():#系统公告初始化函数try:#检查系统公告x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\System bulletin.jpg',confidence=0.8)Init_Exit()except TypeError:try:x,y = pyautogui.locateCenterOnScreen(r'\Arknight\picture\activity bulletin.jpg',confidence=0.8)Init_Exit()except:passfinally:pass

识别到这个图片,执行Init_Exit函数

若报错,则识别,后同上。

最后无论如何均会跳过(对应一天内多次登录后不会有第二次弹出系统公告)

——————————————————————————————————

Check_Email函数————————————————————————

def Check_Email():try:#检查邮件x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\Email.png')MoveAndClick('\Arknight\picture\Email.png',0.9)MoveAndClick('\Arknight\picture\Payemail.png',0.9)MoveAndClick('\Arknight\picture\Confirm.png',0.9)pyautogui.press('esc')except:pass

识别

这个图片(注意,为了不与没有邮件的情况混淆,图片识别可信度调为1(默认)

若存在点击

模拟点击

模拟点击,最后按下esc

若中间报错则直接退出(对应无最新邮件)

————————————————————————————

基于python的明日方舟自动刷取理智的脚本(一)—— 初始化环境相关推荐

  1. 明日方舟如何刷初始号,明日方舟如何刷初始号教程

    相信大部分玩过明日方舟的玩家朋友都知道明日方舟可以刷初始,新手玩家刷到一个好的初始号可以比较轻松的度过新手期. 以前都是建立游客号过新手教程后刷初始的,但是现在明日方舟识别手机设备ID,导致15天内只 ...

  2. python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...

  3. 基于python的今日头条文章抓取内含signature算法

    基于python的今日头条文章抓取内含signature算法 扫二维码添加微信 备注:爬虫 , 拉你进爬虫交流群 或许你会成为第一个加群的人~ 刚有的创群想法! 1. 简单文字描述头条爬虫注意点 由于 ...

  4. python脚本案例-python+adb命令实现自动刷视频脚本案例

    python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...

  5. python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析

    基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...

  6. 基于python,实现简单的爬取基金净值的爬虫

    Python 基金爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python的requests和进程池实现了简单的基金数据爬取脚本: imp ...

  7. python小爬虫SendKey自动刷博刷视频外挂

    python小爬虫SendKey自动刷博刷视频 SendKeys简介 sendkeys是python的一个扩展包,其中有一些常用的符号来表示键盘的快捷键或者输入的字符,对于pywinauto来说,非常 ...

  8. Python用selenium实现自动登录和下单的脚本

    前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一.Selenium 支持的语言包括C#,Java,Perl,PHP, ...

  9. 【python练习】支付宝自动偷取能量

    支付宝自动偷取能量 借助Python的轻量级Uiautomator2第三方库方便快捷的编写支付宝蚂蚁森林偷取能量! 其相比appium相比其语法及用法更加简洁,当然相对于功能也的确没有appium更加 ...

最新文章

  1. 全国大学生智能车竞赛线上高校组合申请通知
  2. 【剑指offer-Java版】20顺时针打印矩阵
  3. 5.4 ~ 5.6 刷题记录
  4. mpvue 中控制swiper滑动,禁止滑动,只允许左滑动,不允许右滑
  5. 服务化改造实践(二)| Dubbo + Kubernetes
  6. java中的provide,vue3 provide ref
  7. 计算机负数次幂科学表示,负数的科学计数法怎么表示
  8. 还是不知道怎么用FreeTextBox 3.0,郁闷致死
  9. c语言flip用法,C ++ STL中的bitset :: flip()
  10. list删除数据的唯一正确写法
  11. 笔记-JavaScript高级程序设计-第六章思维导图
  12. 台式计算机如何连接手机热点上网,家里台式没有网络 想用手机热点来连接电脑上网 怎么处理?...
  13. Flink1.12 文档
  14. ArcGIS遇到严重的应用程序错误的解决办法
  15. 转 Theorem、Proposition、Lemma和Corollary等的解释与区别
  16. 【云原生之Docker实战】使用Docker部署ShowDoc文档工具
  17. CharacterController 人物移动、跳跃
  18. 臭鱼的产品交互设计分享
  19. 获取顺序栈的栈顶元素
  20. 阿里云dns 接口调用/代码

热门文章

  1. 上层应用程序是如何访问到底层驱动程序的呢?
  2. 世界上最经典的二十四句草根哲理
  3. 牛客bfs:工厂流水线
  4. IOS积分墙:末落贵族与新兴势力PK
  5. 3D建模角色男人头雕刻 | 不要再花钱买教程啦
  6. git更新项目失败报错 protocol error: bad line length character: Acti
  7. c语言整数大小越界,整数越界相加并求第n个斐波纳契数(C语言实现)
  8. C++求最大与最小值
  9. YOLO中对IOU、GIOU、DIOU、CIOU的理解
  10. 助记词(Mnemonics)生成种子,以及Public Key, Private key