工具下载链接(网盘)

https://pan.baidu.com/s/1GIZPHQnRQqTD5h1Cy70MNQ?pwd=kxzz

一、前言:

  1. 对于一些比较肝的游戏,想要使用工具挂机;
  2. 对于一些购物时的抢购,使用工具来帮自己点击抢购,解放双手;
  3. 甚至当我们使用电脑时,有些情况下会强制跳出一些窗口,影响某些任务的进展,使用这个工具可以帮忙点击弹窗,关闭弹窗,使得任务继续,而不用人时刻盯在电脑旁点灭弹窗。

二、工具界面(超简单)

三、工具功能原理介绍

  1. 调用截图工具,截图保存想要模拟鼠标点击的地方的图片。比如想模拟鼠标点击一个弹窗的按钮,就可以把这个弹窗截图保存起来。
  2. 工具运行时,会依次将保存的截图与现在屏幕的画面进行匹配,一旦匹配上相似度大于90%的画面时,会控制鼠标移动到指定的位置(匹配到的截图的中心位置,截图时中心位置会标记出来,所以截图时就已经确定了之后模拟点击的位置),然后点击一次,再将鼠标移动到原来的位置。
  3. 使用者可以随时进行截图,工具运行时会一直重复匹配图像的过程

四、使用步骤

  1. 运行程序后会弹出询问窗口,简单介绍工具的使用方法,可以选择查看详细使用方法,也可以取消查看使用方法,直接使用工具。
  2. 之后会在屏幕右下方会跳出工具界面,点击自动点击开始截图,选好截图区域后,按空格或回车键保存截图并运行工具。
  3. 之后工具就根据截图匹配屏幕画面,内容相符时模拟鼠标点击(点击位置是截图区域的中心)

五、注意事项

  1. 对于打包成exe文件的小工具,使用时截图保存的图片不会自动删除,会保存在与exe文件同目录下。工具工作时会依次访问其同目录下的.png格式图片,用于匹配,所以第一次保存的截图如果不手动删除的话,第二次打开工具时会按照第一次的标准来识别,如果第二次想重新识别不同于第一次的内容,最好把第一次的截图删掉。(归根到底就是exe同目录下有哪些.png格式图片,工作时就会用那些.png图片匹配)。
  2. 对于没有打包的.py源代码文件,使用者在自己电脑上运行时,一定不要把源代码文件和本地其他.png图片放在同一目录下。一是可能会影响工具的使用效率,二是停止运行程序后,程序会自动递归清除同目录下所有文件中的.png图片(回收站里找不到那种)。

六、项目源码

import tkinter,cv2,PIL,numpy
from tkinter import messagebox
from PIL import ImageDraw,ImageGrabimport os
import datetime
import _thread
import pyautogui as p
import time
FLAG = True#创建窗口
def window():window=tkinter.Tk()window.protocol('WM_DELETE_WINDOW', delete_pictures)window.wm_attributes('-topmost',1)position_x=window.winfo_screenwidth()-150# window.geometry('%dx%d+%d+%d' % (100,30,(window.winfo_screenwidth()-100), (window.winfo_screenheight() - 100) ))window.geometry('%dx%d-%d-%d' % (120,30,0,50 ))window.resizable(width=False, height=False)button0=tkinter.Button(window, text="自动点击", command=button_command).pack()# window.focus_set()# button0.bind('<Button-2>', keyToButton) #按下s后,执行keyToButton函数,模拟点击按钮window.mainloop()#点击按钮后,截屏,并全屏显示
def button_command():mode=0mouse=Falseprint ('start here')global img,img_copy#filename = 'temp.png'im = ImageGrab.grab()#im.save(filename)#im.close()#im=pyautogui.screenshot()imgSize=im.size#font = ImageFont.truetype('song.ttf', int((imgSize[0])*0.025))draw = PIL.ImageDraw.Draw(im)#draw.text((imgSize[0]*0.7, (imgSize[1]*0.92)), '拖拽鼠标截图,敲回车键继续', (255,0,0), font=font)img=numpy.array(im)img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)img_copy=img.copy()#img =  cv2.imread('1.png')cv2.namedWindow("ROI selector", cv2.WND_PROP_FULLSCREEN)cv2.setWindowProperty("ROI selector",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)r = cv2.selectROI(img_copy)imCrop = img_copy[int(r[1]):int(r[1]+r[3]), int(r[0]):int(r[0]+r[2])]#cv2.imshow('new',imCrop)cv2.destroyAllWindows()#cv2.setMouseCallback('window_full',self.mouse_action)print ('mid here')now1=str(datetime.datetime.now().strftime("%Y-%m-%d_%H%M%S"))cv2.imwrite(now1+'.png',imCrop)
"""
parameter:pic(png格式的图片)
function:根据传进来的图片,在屏幕上匹配该图片,匹配不到时函数结束,否则,模拟鼠标点击匹配图片的中心位置,点击后将鼠标返回到鼠标原来的位置,函数成功匹配执行后睡眠5秒。
"""
def find_pic(pic):x0,y0=p.position()  #记录当前鼠标位置;输出:Point(x=200, y=800)#position=p.locateCenterOnScreen(pic,confidence=0.9)# 使用函数:locateOnScreen(‘zan.png’) ,在当前屏幕中匹配zan.png,如果可以找到图片,则返回图片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到图片,则返回None;position = p.locateOnScreen(pic, confidence=0.9)  # confidence=0.9 表示匹配的置信度为0.9,可以理解是相似度。if position is None:return Falseelse:#x,y=positionx,y,w,h=position  # (x,y)为截图左上角坐标,w,h为截图的宽和高x=x+int(w/2)y=y+int(h/2)print(x,y)        # 计算截图中心的坐标,模拟点击的位置就是截图中心的坐标p.moveTo(x,y)     # 控制鼠标移动p.click()         # 模拟鼠标点击p.moveTo(x0,y0)   # 控制鼠标移动到一开始的位置time.sleep(5)return True
"""
parameter:无
function:找出同目录的所有png格式的图片,并依次作为参数调用find_pic函数,用于匹配
"""
def pic():global FLAGwhile True:for w in os.listdir('./'):if w.endswith('.png') & FLAG == True:find_pic(w)"""
parameter:无
function:找出并删除同目录的所有png格式的图片,删除之后程序退出。
"""
def delete_pictures():  # 程序退出之后删除所有的png图片global FLAGFLAG = Falseprint(os.path.dirname(__file__))path = os.path.dirname(__file__)for root, dirs, files in os.walk(path):for name in files:if name.endswith(".png"):  # 填写规则os.remove(os.path.join(root, name))print("Delete File: " + os.path.join(root, name))os._exit(0)if __name__=='__main__':root = tkinter.Tk()root.withdraw()result = messagebox.askquestion('使用方法提醒', '功能实现简述:会先截图,当程序运行时屏幕中再次出现和截图类似的画面时,会在匹配目标的画面范围中心模拟点击,每隔5s点一次。\n例如,选择模拟点击的弹窗时,弹窗截图应尽量精确,且截图的中心位置就是模拟点击的位置。\n''使用方法简述:阅完此消息,点确定按钮,会跳转到使用方法详细介绍,点取消按钮,屏幕右下方会跳出一小窗口,点击自动点击开始截图,之后按空格或回车键即可\n\n是否打开详细使用方法链接?')if result == 'yes':os.system('"C:/Program Files/Internet Explorer/iexplore.exe" https://blog.csdn.net/quxuexi/article/details/124972889?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165348401616782388091960%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165348401616782388091960&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~times_rank-1-124972889-null-null.142^v10^control,157^v12^control&utm_term=python+%E5%AE%9E%E7%8E%B0%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E7%82%B9%E5%87%BB%E5%99%A8+%E5%8F%AF%E8%BF%90%E8%A1%8C+%E9%99%84%E6%BA%90%E7%A0%81&spm=1018.2226.3001.4187')# messagebox.showinfo(title='使用方法提醒', message='功能实现简述:会先截图,当程序运行时屏幕中再次出现和截图类似的画面时,会在匹配目标的画面范围中心模拟点击,每隔5s点一次。\n例如,选择模拟点击的弹窗时,弹窗截图应尽量精确,且截图的中心位置就是模拟点击的位置。\n'#                                             '使用方法简述:阅完此消息,点确定按钮,屏幕右下方会跳出一小窗口,点击自动点击开始截图,之后按空格或回车键即可\n详细使用方法见链接:')_thread.start_new_thread( window, ())pic()delete_pictures()  # 关闭软件后,自动清除之前使用时保存的截图os._exit()

七、项目依赖包

altgraph==0.17.2
certifi==2022.5.18.1
future==0.18.2
importlib-metadata==4.11.4
MouseInfo==0.1.3
numpy==1.21.6
opencv-python==4.5.5.64
pefile==2021.9.3
Pillow==9.1.1
PyAutoGUI==0.9.53
PyGetWindow==0.0.9
pyHook @ file:///D:/%E6%A1%8C%E9%9D%A2/pyHook-1.5.1-cp37-cp37m-win_amd64.whl
PyMsgBox==1.0.9
pyperclip==1.8.2
PyRect==0.2.0
PyScreeze==0.1.28
pytweening==1.0.4
pywin32-ctypes==0.2.0
typing_extensions==4.2.0
wincertstore==0.2
zipp==3.8.0

python 实现模拟鼠标点击器 可运行 附源码相关推荐

  1. php 模拟鼠标点击,Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例)...

    Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例) 环境 python3 依赖 PyAutoGUI 简介 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动 ...

  2. Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例)

    Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例) 环境 python3 依赖 PyAutoGUI 简介 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动 ...

  3. python画圣诞帽_使用Python给头像加上圣诞帽或圣诞老人小图标附源码

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...

  4. python画圣诞老人_使用Python给头像加上圣诞帽或圣诞老人小图标附源码

    随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...

  5. Python制作经典游戏案例-水果忍者(附源码等文件)

    目录 前言 代码展示 总结 前言 大家好,我是辣条哥,今天给大家分享一款我以前特爱玩的游戏,水果大战,今天我就教大家使用python把这款游戏制作出来.我们先来看效果 点击跳转文末 相关的一些音乐文件 ...

  6. Python实现的图书分析大屏展示系统(附源码)

    今天给大家分享的是基于 Flask.Echarts.Pandas 等实现的图书分析大屏展示系统. 项目亮点 采用 pandas.numpy 进行数据分析 基于 snownlp.jieba 进行情感分析 ...

  7. 越过验证码 selenium模拟登录B站项目实战(附源码)

    实战:selenium模拟登录B站 登录验证码处理 selenium 中的难点验证码破解因为确实没有很好的方式,一般都需要通过第三方平台实现破解,本案例中使用的是超级鹰平台(收费,大概1元30次,测试 ...

  8. 用 Python 全自动下载抖音小姐姐视频(附源码)

    作者:法纳斯特 为什么写这篇文章,主要也是因为看了一篇文章. 「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+鹅厂的AI,一晚上关注了一千 ...

  9. Python采集天气数据,做可视化分析【附源码】

    知识点: 动态数据抓包 requests发送请求 结构化+非结构化数据解析 开发环境: python 3.8 运行代码 pycharm 2021.2 辅助敲代码 requests 如果安装python ...

最新文章

  1. 前沿视频教室——《C#图解教程》是本好书,强烈推荐!
  2. leetcode算法题--可以形成最大正方形的矩形数目
  3. SQL注入——基于时间的盲注(九)
  4. Linux内核态之间进程通信,内核态和用户态通信(二)--实现
  5. modelsim仿真不出波形_直接扩频通信(下)仿真
  6. Redis 6.0 源码阅读笔记(8) -- Stream 数据类型源码分析
  7. Solr分析器IK-analyzer配置及错误java.lang.AbstractMethodError解决
  8. linux mysql 管理员,Linux管理员-CentOS 7上的MySQL设置
  9. CTA策略:主力连续、全合约模式下回测结果的差异探讨
  10. ibm服务器如何安装linux,IBM服务器安装步骤
  11. 学习分析技术【02】--社交网络分析
  12. JAVA 使用 pdfbox实现打印 PDF 文件 (横版,竖版)
  13. Python统计学11——分位数回归
  14. HTML页面基本结构。
  15. 计算机房电器设备功率密度,WP155_R0_数据中心空间和功率密度需求的计算.pdf
  16. word 方框打勾_复制拿走即用
  17. AutoJs学习-2048小游戏自动化
  18. 榜样访谈——曾钰倬:从讲座中收获经验
  19. 面试官:知道你的接口QPS是多少么?
  20. 滤波电容为什么要靠近放置,去耦半径是什么?滤波电容如何打孔?(转)

热门文章

  1. 解决Deepin15.10安装后无WiFi和无线网卡驱动问题
  2. android 保存图片(视频)到相册
  3. 华为笔记本换装linux双系统,matebook的win+ubuntu双系统安装方法
  4. 计算机英语情景对话二人组,英语情景对话要求两人的对话 时间5分钟左右 内容是在校园两个好朋友谈论...
  5. C++课后作业 6.教材习题5_7:利用静态变量统计小猫Cat的数量
  6. 基于C#的单机版连连看游戏设计与实现
  7. 关于SSML音频合成是否成功的判断
  8. Python 处理一对多考勤表
  9. php自我介绍50字,自我介绍50字
  10. Tomcat部署静态页面