python pyautogui 捕捉桌面按钮,并进行点击操作

前言

        有些自动化场景,需要监测系统桌面是否出现指定的按钮,本文是通过在window系统上,捕捉桌面的【关闭电脑】按钮,并点击该按钮来演示整个流程。

功能讲解

 1、预定义【关闭电脑】按钮的图片;

2、检测出屏幕上存在与预定义图片相似度高的按钮;

3、获取按钮在桌面的坐标,并对该坐标进行单击操作。

代码如下:

# -*- coding: utf-8 -*-
import pyautogui
import win32con, win32gui, win32print
from win32.lib import win32con

button_image_path = 'button.png'

def getscale_factor():
    hdc = win32gui.GetDC(0)
    win_width = win32print.GetDeviceCaps(hdc, win32con.DESKTOPHORZRES)
    #win_height = win32print.GetDeviceCaps(hdc, win32con.DESKTOPVERTRES)
    #print(win_width, win_height)
    # 获取当前屏幕分辨率
    current_res = pyautogui.size()
   # print("current_res:",current_res)
    # 设置缩放因子,以适应不同分辨率
    scale_factor = current_res.width / win_width  # 假设1920x1080是你的基准分辨率
    print("scale_factor:",scale_factor)
    return scale_factor

def dealbutton(scale_factor):
    # 找到特定图片按钮的位置并点击
    
    button_location = pyautogui.locateCenterOnScreen(button_image_path, confidence=0.8)
     
    if button_location is not None:
        # 根据缩放因子调整按钮位置
        button_location = pyautogui.Point(int(button_location.x * scale_factor), int(button_location.y * scale_factor))
        pyautogui.click(button_location)
    else:
        print('未找到按钮图像')
    

if __name__=='__main__':
    scale_factor=getscale_factor()
    dealbutton(scale_factor)

在window中必须使用win32才能获取到精准的坐标,使用其他的方法是有问题的!另外按钮的代码,本人是用QT来实现的,懒得用pyqt5来实现了,资源为QT实现的按钮应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值