Python的Windows GUI自动化之Pywinauto(四)

news2024/11/15 11:52:12

引言:

我们上章节中打开了一个应用程序后,并打印了所有的控件信息,这些对于工具无法定位到的控件有很好的协助作用(当然这个可以作为主要的查找控件的用法,也可以辅助使用,我一般是把这个作为辅助使用)

定位控件的工具有很多种,这里推荐平时我使用的一种工具Autoit

下载地址:
https://www.autoitscript.com/site/autoit/downloads/

下拉找到下载按钮并下载安装完毕
在这里插入图片描述

安装后找到此应用程序,并打开如图所示
在这里插入图片描述

当我们打开应用程序后,点击Finder Tool按钮,并长按拖拽到要寻找的应用控件上,如我们查到的Notepad++ 的控件信息了,还有打开的新的窗口的标题

在这里插入图片描述

实际代码操作:

1 获取连接的窗口,并对窗口操作

import psutil
from pywinauto import Application

for process in psutil.process_iter():
    try:
        processinfo = process.as_dict(attrs=['pid', 'name'])
        if processinfo['name'] == 'notepad++.exe':
            process.kill()
    except psutil.NoSuchProcess:
        pass

path = r'C:\Program Files (x86)\Notepad++\notepad++.exe'          #应用程序安装的路径
app = Application(backend='uia').start(path)

# 连接到Notepad++窗口
window = app["Notepad++"]     #使用定位软件定位到窗口信息

#  获取窗口的标题和文本内容
title = window.texts()[0]
print(title)
# text = window.window_text()

# 最大化窗口
# window.maximize()

# 最小化窗口
window.minimize()

# 还原窗口
# window.restore()

# 关闭窗口
# window.close()

# 设置窗口的大小和位置
# window.set_rect(100, 100, 800, 600)

2.获取菜单栏信息

先提供完整代码,后面逐一讲解:

path = r'C:\Program Files (x86)\Notepad++\notepad++.exe'          #应用程序安装的路径
app = Application(backend='uia').start(path)
# app['Notepad++'].print_control_identifiers()  #获取Notepad++ 界面所有的控件信息
#连接到Notepad++窗口
window = app["Notepad++"]
# 获取菜单栏所有信息
# window['应用程序Menu'].print_control_identifiers()
# window.Menu2.print_control_identifiers()
# window['应用程序'].print_control_identifiers()
window['应用程序Menu'].child_window(title="文件(F)").click_input()

打开Notepad++后 想对下面的这些菜单栏就行操作,这个时候使用autoit工具确无法定位怎么办? 那我们就可以使用打印控件的信息来定位了

在这里插入图片描述

代码如下:

path = r'C:\Program Files (x86)\Notepad++\notepad++.exe'          #应用程序安装的路径
app = Application(backend='uia').start(path)
# app['Notepad++'].print_control_identifiers()  
#获取Notepad++ 界面所有的控件信息,我们菜单栏的控件就是这里获取到的

这里我们获取所有的控件信息后,可以从中查询到对应的菜单栏的信息控件
在这里插入图片描述

然后获取菜单栏所有信息,使用的三个其中的一个都可以运行,使用方式为window[‘中文控件名字’]或者window.英文控件名 这个取决于你使用的中文的还是英文的控件名了

#连接到Notepad++窗口
window = app["Notepad++"]
# 获取菜单栏所有信息,
# window['应用程序Menu'].print_control_identifiers()
window.Menu2.print_control_identifiers()
# window['应用程序'].print_control_identifiers()

点击其中一个菜单下的子菜单项,就可以借助与上面控件打印出来的信息使用了(这是因为工具无法定位的情况下这样使用)

如点击文件代码:文件
在这里插入图片描述

window['应用程序Menu'].child_window(title="文件(F)").click_input()

工具能定位到控件信息的话就可以直接使用window[‘应用程序Menu’][“文件(F)”].click_input()

这里是因为工具无法准确提供信息,我们就使用其自带的打印信息直接套用

总结:

这一章节我们做的就是打开应用程序后窗口类的各项操作,打开菜单栏下的任意一项菜单的操作。

下一章节我们继续讲解对某一个菜单项下的子菜单的操作,点个关注,不迷路,谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】初识C++模板与STL

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理 本章将简单分享C模板与STL相关知识,与之相关更多知识将留到下次更详细地来分享给大家 &#x1f3…

MySQL与ES数据实时同步,双写一致

一、简介 在项目的开发与运维过程中,MySQL 是业务数据库的核心角色,以其强大的事务处理能力和数据完整性保障,支撑着系统的稳定运行。随着数据量的急剧增长和查询复杂度的不断提升,单一依赖 MySQL 进行高效的数据检索显得日益吃力…

centos安装软件

1.centos 安装 unrar 提示找不到 使用EPEL仓库: 首先,你需要安装EPEL仓库: yum install epel-release 然后,尝试再次安装unrar: yum install unrar 编译安装: 下载源代码:wget http://www.rarla…

对耳朵伤害最小的耳机类型是哪种?五款口碑绝佳机型安利!

​目前来说,开放式耳机应该算是对耳朵伤害最小的耳机了。当今耳机市场上,开放式耳机以其舒适的佩戴和创新的非入耳设计赢得了众多消费者的喜爱。这种耳机让你在聆听音乐的同时,还能清晰地感知周围环境的声音,便于与人交流&#xf…

clickhouse 原理详解

1、MPP数据库简介 1.1、什么是OLTP与OLAP? 1.1.1、OLTP(OnLine Transaction Processing ) 联机事务处理 系统,例如mysql。擅长事务处理,在数据操作中保持着很强的一致性和原子性 ,能够很好的支持频繁的数据插入和修改 &#x…

Java使用Tesseract进行OCR图片文字识别

前言 在当前的文字识别技术应用中,除了采用现有的API服务之外,常见的解决方案包括利用Tessdata、Canvas或OCRAD等工具。以下是对几种技术的简要分析: 百度API的使用体验表明,虽然其识别率令人满意,但并非完美无误。此…

一个月狂撸5.8W,利用AI制作宝宝走秀视频,让宝宝“出海”捞美刀

今天给大家分享的项目是**AI宝宝走秀视频玩法,**在项目拆解之前,先看一下这个账号。这个账号是在Tiktok上的,也就是海外版的抖音。 基本上都是几千万的播放,按照海外版抖音的激励计划,每播放一万次,就能赚8…

紧跟大模型技术趋势,为更大更通用的大模型提供底层支撑!关于智能计算系统:从深度学习到大模型,全新版本,发布!

文章目录 📋前言🎯 关于智能计算系统🎯 内容简介🎯 作者简介🎯 专家推荐🎯 目录大纲🔥 参与方式 📋前言 “只要你想把大模型做得更好、做得更大、做得更快、做得更省电,…

翻译软件 Fastrans 开发日志 #01

目录 预览前言功能技术待办 预览 Github 仓库链接:https://github.com/YaoqxCN/Fastrans Gitee 仓库链接:https://gitee.com/yaoqx/Fastrans 求求给我点个 star 叭 qaq 现在才是 v1.0.0,给我个 star 鼓励我继续开发下去! 我相信…

AI如何帮助普通人实现自我成长和副业变现

前言 最近有没有发现身边的一切都变得越来越"智能"了?连家里的空调都学会了自己调整温度,害得我每天起床都觉得它比我聪明。这不禁让我想到,既然连空调都在进化,我们这些普通人是不是也该搭上AI的快车,来个华…

找出所有子集异或和的和 全排列2

1863.找出所有子集异或和的和 解释&#xff1a;做本题没思路的话&#xff0c;强烈建议看本专栏上一篇博文 class Solution { public:int sum 0;int path 0;int subsetXORSum(vector<int>& nums) {dfs(nums, 0);return sum;}void dfs(vector<int>& nums,…

大模型分布式训练技术(DP、DDP和FSDP)

目录 数据并行&#xff08;PyTorch DP&#xff09; 分布式数据并行&#xff08;PyTorch DDP&#xff09; DP 与 DDP 的区别 补充说明&#xff1a;DP与DDP数据传输过程 完全分片数据并行(PyTorch FSDP) 补充说明&#xff1a;ZeRO FSDP DDP 与 FSDP 的区别 DP、DDP和FSD…

ADW400环保监测模块,用于各省市环保平台对接

ADW400环保监测模块主要用于计量低压网络的三相有功电能&#xff0c;同时可选择四个回路的电流输入&#xff0c;具有RS485通讯和470MHz无线通讯功能&#xff0c;方便用户进行用电监测、集抄和管理。可灵活安装于配电箱内&#xff0c;实现对不同区域和不同负荷的分项电能计量&am…

构建智慧园区的全方位解决方案:技术、部署与挑战应对

在当今数字化转型的浪潮中,智慧园区作为城市智能化的重要组成部分,正在成为各地政府和企业关注的焦点。本文将围绕一套完整的智慧园区解决方案,详细阐述其技术架构、部署流程以及在实施过程中可能遇到的挑战及应对策略。 1. 智慧园区解决方案概述 智慧园区解决方案旨在通过先…

Qt 一个带数据压缩的加解密实现类,压缩率达到了1/3

一.加解密效果 1-1000字符串,所占大小2890(加密前) 1-1000字符串,所占大小1964(加密后) 二.加解密功能实现类 /* Copyright (c) 2011, Andre Somers All rights reserved.Redistribution and use in…

Windows上安装 nodejs,npm 和 yarn详细教程

1、下载Node.js 访问Node.js 官网下载&#xff0c;下载需要版本版本&#xff0c;具体操作如下 2、安装Node.js 具体安装可参考以下知乎教程 https://www.zhihu.com/question/591831850/answer/3423661990 3、配置淘宝镜像 npm config set registry https://registry.npmmirror…

Codeforces Round 925 (Div. 3) E. Anna and the Valentine‘s Day Gift (博弈论*1400)

根据题目条件&#xff0c;我们知道10的m次方就是1后面跟着m个0&#xff0c;也就是说这是个最小的m1位数。 那么只要是最终得来的数的尾数是m1位数就可以通过。 思考影响数位的因素&#xff1f; 在这道题里&#xff0c;安娜能够对数位进行的操作只有删去后导零&#xff0c;由此…

安卓刷机笔记

前置知识 双清— 清除data 、 cache 四清----清除 data 、 cache 、 dalvik分区 、 system分区 四清的好处&#xff1a;卡刷ZIP格式的刷机包都是使用第三方recovery刷入的&#xff0c;所以我们在刷机之前对上一个系统的数据&#xff0c;包括用户数据、系统残留都需要彻底清除&a…

dolphinscheduler 日志乱码

dolphinscheduler 日志乱码如下图所示&#xff0c;检查服务器编码为zh_CN.UTF-8 修改$dolphinscheduler/bin/env/dolphinscheduler_env.sh 增加 JAVA_OPTS"$JAVA_OPTS -Dfile.encodingUTF-8" 参数 重新安装启动 修改前 修改后

i.MX裸机开发(10):UART——串口通讯

本章参考资料&#xff1a;《IMX6ULRM》&#xff08;参考手册&#xff09;。 学习本章时&#xff0c;配合《IMX6ULRM》Chapter 53 Universal Asynchronous Receiver/Transmitter (UART)一起阅读&#xff0c;效果会更佳&#xff0c;特别是涉及到寄存器说明的部分。 本章主要内容…