大家好,欢迎来到IT知识分享网。
好好学习,天天向上,需要完整教程关注–私信:Python,有惊喜哦!
用python编写自动化脚本的时候大部分的业务逻辑都是在用【鼠标点击指定坐标和图片】;
1、鼠标指定坐标点击 Python 模拟用户操作鼠标;
2、找到图片点击图片;
如果你不知道窗口句柄,可以用下面的代码,只要输入目标的窗口名字就行。
例如:你打开了【传奇游戏】窗口,直接用:
句柄_模糊取标题(“游戏”)
下面是Python源码,复制就可以使用:
import re,win32gui def 句柄_模糊取标题(模糊标题名): ' 匹配多个:返回数组;反之:返回1个\n\n返回-1没有找到' 窗口句柄_list = [] # 编译正则表达式模式 pattern = re.compile(模糊标题名, re.I) # re.I 表示不区分大小写 # 遍历所有窗口,找到匹配的标题 def callback(窗口句柄, 窗口句柄_list): if win32gui.IsWindowVisible(窗口句柄): window_text = win32gui.GetWindowText(窗口句柄) if re.search(pattern, window_text): 窗口句柄_list.append(窗口句柄) return True # 枚举窗口并执行回调函数 win32gui.EnumWindows(callback, 窗口句柄_list) if len(窗口句柄_list) == 1: return 窗口句柄_list[0] elif len(窗口句柄_list) > 1: return 窗口句柄_list else: return -1
查找图片并点击的python源码如下:
import pyautogui,os,win32gui 图片_找图并点击('1.png') def 图片_找图并点击(image_path, 窗口句柄=None, click_type=1, s=None): """识别图像并根据提供的参数执行单击或双击。""" if not os.path.exists(image_path): print("图片路径错误:不存在这个图片!") return # 记录当前鼠标位置,稍后将鼠标恢复到此位置 original_x, original_y = pyautogui.position() try: # 激活窗口 if 窗口句柄: win32gui.SetForegroundWindow(窗口句柄) # 设置窗口到前台 # 区分窗口句柄是否存在,决定如何进行屏幕捕获 if 窗口句柄: # 获取窗口的屏幕坐标 left, top, right, bottom = win32gui.GetWindowRect(窗口句柄) window_screenshot = ImageGrab.grab(bbox=(left, top, right, bottom)) # 在窗口截图中寻找匹配图像 position = pyautogui.locate(image_path, window_screenshot, confidence=0.8) else: # 在整个屏幕中寻找匹配图像 position = pyautogui.locateOnScreen(image_path, confidence=0.8) if position is None: print("图片未找到!") return # 计算图像中心点 center_x, center_y = position.left + position.width // 2, position.top + position.height // 2 if 窗口句柄: # 将坐标调整到全屏幕坐标 center_x += left center_y += top pyautogui.moveTo(center_x, center_y) # 移动鼠标到图像中心 if s: # 如果有延迟参数,先延时 time.sleep(s) # 根据click_type参数,执行单击或双击 if click_type == 2: pyautogui.doubleClick() else: pyautogui.click() except Exception as e: print("图片挡住了:", e) finally: pyautogui.moveTo(original_x, original_y) # 操作后将鼠标还原到原位
如果有用,请点个赞
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/166329.html