python PyAutoGUI 使用

news/2024/10/28 0:17:05/
pip install pyautogui

document

import pyautoguipyautogui.size()
pyautogui.position()

鼠标

  • To 是绝对坐标
  • Rel 或者 不带 To 是相对坐标
pyautogui.moveTo(x=None, y=None, duration=0.0)
pyautogui.dragTo(x=None, y=None, duration=0.0, button=PRIMARY)

click(x=None, y=None, clicks=1, interval=0.0, button=PRIMARY, duration=0.0)

  • doubleClick
  • tripleClick

mouseDown
mouseUp

scroll

键盘

typewrite
press(keystr, presses=1, interval=0.0)
hotkey

KEYBOARD_KEYS

keyDown
keyUp

截屏

pyautogui.screenshot(r’C:\Users\pc\Desktop\test.png’, region=(x, y, width, height))

通过图片匹配获取点击位置
pyautogui.center(pyautogui.locateOnScreen(‘图片路径’, grayscale=True))
pyautogui.locateCenterOnScreen()

解决图片匹配不到的问题:

  1. 使用 opencv 的来提高识别率
pip install opencv-python
  1. 调低匹配函数 confidence 参数(识别准确度)
    confidence = 0.9|0.8等,confidence 越小,定位的精度会下降,但更容易匹配到图片。
  2. 转换为灰度匹配 grayscale=True 会使图像和屏幕截图中的颜色去饱和,可以避免由显示器饱和度不同导致的图像定位失败。
  3. region 参数缩小匹配范围 (x,y,width,height),找图会更快,也避免其他区域图像的干扰
  4. 多图定位:同一图像存在不同的状态,如 icon 在不同场景下可能有不同的显示效果,可以把不同显示效果的多张图片归为一个事件,对多张图进行循环查找,定位一张图就可以对整个事件进行定位。
import pyautogui#循环找图,找到就返回图像中心点,没找到就打印'没找到'
def imgs_locate(args):for i in range(len(args)):r = pyautogui.locateCenterOnScreen(arg[i])if r !== None:return relse:pass# print('没找到')#测试
print(imgs_locate(['images/test.png','images/test1.png'])

其他相关

中文输入 使用赋值粘贴
pip install pyperclip
copy(“str”) 修改剪切板内容
pyautogui.hotkey(“Ctrl”, “v”)

获取日期字符串
datetime.datetime.now().strftime(‘%Y-%m-%d’)


http://www.ppmy.cn/news/162286.html

相关文章

uni-app之Cover-View组件详细使用教程

在 UniApp 中,Cover-View 组件是一种用于展示覆盖在页面上方的视图元素的组件。它可以用于创建各种遮罩、弹出层、悬浮按钮等效果,提供了更多自定义样式和交互的可能性。本教程将详细介绍 Cover-View 组件的用法和示例代码。 步骤1:创建一个…

宾得67中画幅相机红色版套装现身eBay

本文来自新摄影 近日,卖家shueido在eBay上正在销售一款红色宾得67中画幅相机套装。值得注意的是,这款套机机身颜色并非原装设计,而是玩家后期改装。据悉,eBay在售的这套宾得67相机套装包括宾得67机身、TTL取景器、105mm F2.4镜头以…

clang 01. clang driver流程分析

文章目录 前言在这里简要概述一下clang的流程 1.clang driver代码分析1.1创建诊断(DIagnosticsEngine)实例1.2创建Driver(clang::driver::Driver)的实例1.3通过Driver的BuildCompilation方法生成需要执行的命令1.4Jobs构建完成,通过Driver的E…

Python3中对时间的处理(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 本文介绍Python3中各种处理时间的库和使用方案 最近更新时间:2023.6.2 最早更新时间:2023.6.2 文章目录 1. datetime库2. time库3. JioNLP库:(中文)从文本中提取时间信息4. datefinde…

深入了解JavaScript中的Promise

在JavaScript中,异步编程是必不可少的。过去,我们通常使用回调函数来处理异步操作,但回调地狱(callback hell)和复杂的错误处理使得代码难以维护。为了解决这些问题,ES6引入了Promise,它是一种更…

Java --- springboot3之日志管理

目录 一、日志整合原理 1.1、简介 1.2、日志格式 1.3、记录日志 1.4、日志级别 1.5、日志分组 1.6、日志文件输出 1.7、文件归档与滚动切割 1.8、自定义日志系统 一、日志整合原理 规范:项目开发不要编写System.out.println(),应该用日志记录信息…

如何进行网站建设定制开发

如今,由于互联网的迅速发展,市场竞争越来越激烈,企业想要在市场中保持竞争力,就必须要有自己的品牌形象。而网站建设则是品牌建设的重要组成部分,一个好的网站能够有效提升企业品牌形象,提高客户满意度和忠…

【Java】int转hexString时高位不足补0,避免出现长度为3或2的hexString

String.format方法 在 Java 中,可以使用 String.format 方法来实现将 int 转成高位补 0 的 hexString: int num 255; String hexString String.format("%08X", num); System.out.println(hexString);长度为4位 int num 255; String hexS…