今天做自动化时碰到IE里面套用Google,无法获得句柄和URL,只能用图像匹配的思想来完成自动点击,本程序用到了几个包和包在安装过程中遇到的麻烦再其他博客都写到了。

pip install Pillow
pip install opencv_python
pip install PyMouse

第三个包安装后依然会报错,并不是程序的问题,是配置的问题,解决方案如下:

https://blog.csdn.net/qq_38523616/article/details/97796921

需要提供你识别图片的图片,将其命名为test8.jpg,因为我截得是桌面的屏幕所以匹配的图片也必须是运行时在最顶端的窗口,不然会无法找到图片

# 截图整个桌面
import win32gui
import win32ui
import win32con
import win32api
import cv2
from PIL import Image
from pymouse import PyMouse
# 获取桌面
hdesktop = win32gui.GetDesktopWindow()
# 分辨率适应
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
# 创建设备描述表
desktop_dc = win32gui.GetWindowDC(hdesktop)
img_dc = win32ui.CreateDCFromHandle(desktop_dc)
# 创建一个内存设备描述表
mem_dc = img_dc.CreateCompatibleDC()
# 创建位图对象
screenshot = win32ui.CreateBitmap()
screenshot.CreateCompatibleBitmap(img_dc, width, height)
mem_dc.SelectObject(screenshot)
# 截图至内存设备描述表
mem_dc.BitBlt((0, 0), (width, height), img_dc, (0, 0), win32con.SRCCOPY)
# 将截图保存到文件中
screenshot.SaveBitmapFile(mem_dc, 'main.bmp')
# 内存释放
mem_dc.DeleteDC()
win32gui.DeleteObject(screenshot.GetHandle())
img=Image.open('main.bmp')
img.save('main.jpg')##图片单匹配
#读取目标图片
target = cv2.imread("main.jpg")
#读取模板图片
template = cv2.imread("test8.jpg")
#获得模板图片的高宽尺寸
theight, twidth = template.shape[:2]
#执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED
result = cv2.matchTemplate(target,template,cv2.TM_SQDIFF_NORMED)
#归一化处理
cv2.normalize( result, result, 0, 1, cv2.NORM_MINMAX, -1 )
#寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
#匹配值转换为字符串
#对于cv2.TM_SQDIFF及cv2.TM_SQDIFF_NORMED方法min_val越趋近与0匹配度越好,匹配位置取min_loc
#对于其他方法max_val越趋近于1匹配度越好,匹配位置取max_loc
strmin_val = str(min_val)
#绘制矩形边框,将匹配区域标注出来
#min_loc:矩形定点
#(min_loc[0]+twidth,min_loc[1]+theight):矩形的宽高
#(0,0,225):矩形的边框颜色;2:矩形边框宽度
# cv2.rectangle(target,min_loc,(min_loc[0]+twidth,min_loc[1]+theight),(0,0,225),2)
#显示结果,并将匹配值显示在标题栏上
# cv2.imshow("MatchResult----MatchingValue="+strmin_val,target)print(min_loc)
print(max_loc)
cv2.waitKey()
cv2.destroyAllWindows()
a=min_loc[0]+10
b=min_loc[1]+5x=int(a)
y=int(b)m = PyMouse()
a = m.position()    #获取当前坐标的位置
print(a)m.move(x, y)   #鼠标移动到(x,y)位置
a = m.position()
print(a)m.click(x, y)  #移动并且在(x,y)位置左击

根据图像匹配实现鼠标自动点击相关推荐

  1. python 鼠标 自动点击_鼠标隔段时间自动点击屏幕

    知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2). 运行代码出现:ModuleNotFoundError: No m ...

  2. Delphi下实现鼠标自动点击器

    本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-20849-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 众所周知,当鼠标指 ...

  3. 实用分享-鼠标自动点击助手

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处    鼠标自动点击助手 工具下载路径: 鼠标轨迹助手-可自定义点击轨迹-其它文档类资源-CSDN ...

  4. python自动点击脚本_用Python实现鼠标自动点击

    前言: 最近玩某页游时遇到一个重复任务,需要不停的接/交任务道具,数量巨大又十分麻烦,想去网上下脚本又找不到合适的,于是整了一个可以实现鼠标自动点击的小玩意.因为我之前没有任何编程基础,这两天自学又走 ...

  5. 鼠标连点器,怎么玩转鼠标自动点击?

    鼠标连点器是一款非常便捷的工具,可以帮助我们自动进行鼠标点击操作.这种工具尤其适用于一些需要反复点击同一个位置的软件或游戏,在这些情况下手动点击会非常费时费力,而鼠标连点器就能够为我们节省很多宝贵的时 ...

  6. ThinkPad win7 鼠标自动点击错误

    重新安装的32bit T420 WIN7在使用了一下午的触摸板后出现鼠标自动点击的现象,更新驱动,也不能修正,后来安装了<联想服务>,该问题消失了一段时间,但是这周又来了,怎么修正都没有效 ...

  7. Python中pyautogui安装-用pyautogui写脚本让鼠标自动点击给摩尔庄园毛毛树浇水施肥

    目录 pyautogui安装教程 脚本内容 pyautogui安装教程 在C盘搜索cmd.exe 右键点击"以管理员身份运行",打开后进入安装的python3.7目录,进入后输入& ...

  8. 怎样在python代码中输入π_鼠标自动点击、键盘自动输入?几行Python代码搞定

    相信我,你以后一定会用到.实在不行,你先收藏,做个收藏家,等拿出来,就值钱了. 第一步:安装并导入相关模块 只需要安装PyUserInput,如下: pip install PyUserInput 如 ...

  9. python实现软件自动点击_鼠标自动点击、键盘自动输入?几行Python代码搞定

    第一步:安装并导入相关模块 只需要安装PyUserInput,如下:pip install PyUserInput 如果你是Win10系统,肯定会报错,具体怎么解决,我放在文章结尾讲,先把主要思路讲完 ...

  10. 欢乐鼠标自动点击器_使用ESP32 DIY蓝牙自动点击器,滑屏器

    前言 因为爱薅羊毛,然后正好最近免费车一趟接一趟,咪咕开完,京东开,京东开完掌阅开,下一个不知道是谁,,,,可我又不是什么很有耐心的人,虽然我喜欢看书,但是如果规定时间,加上页数限制我就很烦,所以我还 ...

最新文章

  1. 'datetime.datetime' object is not callable
  2. 重写CListCtrl滚动条,遇到的问题。
  3. linux nslookup脚本,Linux中nslookup命令起什么作用呢?
  4. python大神推荐_大神推荐!!!高评分书籍轻松带你入门Python
  5. 临沂经济技术开发区 智慧让城市建设更美好
  6. 自定义刻度_想为 Apple Watch 打造自定义表盘,试试这款 App
  7. 牛客网-Technology Tree
  8. (九)特征提取之主成分分析(PCA)
  9. (Android)java虚拟机和Dalvik虚拟机的区别
  10. Android串口示波器,解读一个超赞的开源串口虚拟示波器项目
  11. CodeForces - 1009D Relatively Prime Graph
  12. 常见的磁盘格式以及它们之间的区别
  13. Qt 使用布局管理器失效或者异常
  14. WinXP/Win2003系统ISO镜像文件PE安装步骤
  15. [附源码]计算机毕业设计校园运动会管理系统Springboot程序
  16. vcpu和cpu的关系
  17. python中zerodivisionerror是什么意思-Python异常处理实例讲解
  18. 视频区域裁剪python_录制的视频,使用python opencv去截取帧数(自定义间隔帧截取)同时可裁剪图像尺寸...
  19. 洛谷 P4168 [Violet]蒲公英 解题报告
  20. 网线还能这样玩???(哈哈哈,记一次差点被揍事件)

热门文章

  1. ubuntu dns 解析失败
  2. 高中数学解题技巧:平面解析几何-圆锥曲线的综合问题
  3. 试验一:网络扫描与网络侦查
  4. Liang-Barsky直线段裁剪
  5. 计算机应用基础考试制作表格,计算机应用基础考试---Excel电子表格公式与函数...
  6. 计算机电子表操作格试题,计算机电子表格试题含答案Excel
  7. python炫酷烟花表白源代码-python炫酷烟花表白的源代码分享
  8. 人脸识别小区门禁系统_小区人脸识别门禁系统
  9. 音创点歌机_音创ktv点歌系统
  10. 【大学物理·早期量子论和量子力学基础】一维定态薛定谔方程的应用