Windows自动化Python pyautogui RPA操作实现

2025-01-15 04:50

本文主要是介绍Windows自动化Python pyautogui RPA操作实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大...

依赖包

import time
import pyautogui
import pyperclip
import os
import psutil
from pywinauto.application import Application

睡眠:

pyautogui.sleep(1)

鼠标事件:

pyautogui.moveTo(100, 100, duration=0.25)
pyautogui.click(1China编程00, 100, duration=0.25)
pyautogui.click(10,10)   # 鼠标点击指定位置,默认 PRIMARY 键
pyautogui.click(10,10,button='left')       # 单击左键
pyautogui.click(1000,300,button='right')   # 单击右键
pyautogui.click(1000,300,b编程China编程utton='middle')  # 单击中键


## 为了更方便,下面的函数包装了click,不需要传参 button
pyautogui.leftClick(10,10)		# 单击左键
pyautogui.rightclick(10,10)		# 单击右键
pyautogui.middleClick(10,10)	# 单击中键

# 双击鼠标
pyautogui.doubleClick(10,10)

# 三击鼠标
pyautogui.tripleClick(10,10)

# 按下 & 释放
pyautogui.mouseDown()   # 鼠标按下
pyautogui.mouseUp()    # 鼠标释放

# 拖动鼠标
pyautogui.dragTo(x, y) 绝对位置
pyautogui.drag(x, y) 相对位置

# 滚动鼠标 滚动发生在鼠标的当前位置。 传递正整数表示向上滚动, 传递负整数表示向下滚动。
pyautogui.scroll(-100)
pyautogui.hscroll(100)   # 向右滚动100
pyautogui.hscroll(-100)   # 向左滚动100


# 按键操作 press
pyautogui.press('enter', 5)   # 连按5次回车
# 按下 & 释放
pyautogui.keyDown('A') : 模拟按键按下;
pyautogui.keyUp('A') : 模拟按键释放;

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

pyautogui.hotkhttp://www.chinasem.cney('ctrl', 'c')

杀死进程:

def kill_process(process_China编程name):
    for proc in psutil.process_iter(['pid', 'name']):
        if proc.info['name'] == process_name:
            try:
                proc.kill()
                print(f"Process {process_name} with PID {proc.info['pid']} has been terminated.")
            except psutil.NoSuchProcess:
                print(f"Process {process_name} with PID {proc.info['pid']} no longer exists.")
            except psutil.AccessDenied:
                print(f"Access denied to terminate process {process_name}.")

# 使用
kill_process('AliWorkbench.exe')

获取所有窗口的名称:

titles = pyautogui.getAllTitles()
print("titles: ", titles)

显示窗口:

def make_window_visible(title):
    try:
        # 尝试连接到已运行的应用程序
        app = Application(backend="uia").connect(title=title, timeout=10)
        window = app.window(title=title)
        # 确保窗口是可见的并且处于最前面
        if not window.is_active():
            window.set_focus()  # 设置焦点,这通常会将窗口带到前台
        if not window.is_visible():
            window.show()  # 显示窗口(如果它被最小化或隐藏)
        print(f"Window '{title}' has been made visible and active.")
    except Exception as e:
        print(f"Failed to make window '{title}' visible: {e}")

# make_window_visible('微信')

根据图片找元素:

# 这里只返回一个
def close_dialog():
    try:
        close_icon_center = pyautogui.locateCenterOnScreen('close_icon.png', grayscale=True,编程 confidence=0.9)
        pyautogui.sleep(0.01)
        print("弹框关闭图标-坐标:", close_icon_center)
        if close_icon_center:
            pyautogui.leftClick(close_icon_center.x, close_icon_center.y)
            pyautogui.sleep(0.01)
    except pyautogui.ImageNotFoundException as ee:
        print("没有发现弹框关闭图标")
 
 # 多个的操作
down_select_icon_centers = list(pyautogui.locateAllOnScreen('down_select_icon.png', grayscale=True, confidence=0.9))
print("下拉箭头长度len:", len(down_select_icon_centers))
pyautogui.leftClick(pyautogui.center(down_select_icon_centers[1]).x, pyautogui.center(down_select_icon_centers[1]).y)

输入文字:

# 这个可能会受到输入法的影响
pyautogui.write()

def paste_str(str1):
	pyperclip.copy(str1)
	pyautogui.hotkey('ctrl', 'v')
	# pyperclip.copy('') # 重置粘贴板内容为空
	# pyperclip.paste() 这是粘贴

打开应用:

# 打开
Application().start("D:/Program Files/AliWorkbench/AliWorkbench.exe")
# 显示
make_window_visible('千牛工作台')
# 根据Windows窗口名称获取窗口,并最大化
chat_window = pyautogui.getWindowsWithTitle('千牛工作台')[0]
chat_window.maximize()

# win.maximize() # 最大化

# win.minimize() # 最小化

# win.restore() # 如果是最大/小化,则恢复成正常状态

# win.close()

到此这篇关于Windows自动化python pyautogui RPA操作实现的文章就介绍到这了,更多相关Python pyautogui RPA操作内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)! 

这篇关于Windows自动化Python pyautogui RPA操作实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153067

相关文章

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个