鱼C论坛

 找回密码
 立即注册
查看: 1495|回复: 0

python修改屏幕分辨率后,使用pyautogui点击坐标出现错误

[复制链接]
发表于 2021-11-24 17:44:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在用pyautogui写一个自动跑工具的脚本,考虑到同事用的时候,电脑分辨率会和我的不一致,因此加了一个检查电脑分辨率并切换的部分代码如下:
def check_display():
    w = win32api.GetSystemMetrics(0)
    h = win32api.GetSystemMetrics(1)
    if w == 1920 & h == 1080:
        pass
    else:
        dm = win32api.EnumDisplaySettings(None, 0)
        dm.PelsWidth = 1920
        dm.PelsHeight = 1080
        dm.DisplayFixedOutput = 0
        win32api.ChangeDisplaySettings(dm, 0)
    return(w,h)

后面就是打开工具和选择选项了,但是出现的问题就是,如果我切换了屏幕的分辨率,后续根据坐标点击工具选项就会出错,下面是我选择工具选项的代码:
def select_option ():
    check_img = r'C:\Users\siyuan.tian\Desktop\autogui\img\tittle.png'
    lo = agui.locateCenterOnScreen(check_img)
    lo_x, lo_y = lo
    #点击Stability
    agui.click(x=lo_x+170, y=lo_y+125, clicks=1, button='left')
    time.sleep(0.3)
    #点击sharpness
    agui.click(x=lo_x+190, y=lo_y+200, clicks=1, button='left')
    time.sleep(0.3)
    #点击ok
    agui.click(x=lo_x-5, y=lo_y+205, clicks=1, button='left')
    time.sleep(0.3)
    #点击确定
    agui.click(x=lo_x-50, y=lo_y+240, clicks=1, button='left')
    time.sleep(0.5)

check_img相当于是一个坐标标准点,其他的坐标都是按照相对位置来计算的
我打印出来的lo坐标是准确的,但是就是鼠标在进行后面的点击操作时有问题
请问出现这种问题是什么原因?有什么好的解决方法,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表