python操作windows窗口,python库pygetwindow使用详解

文章目录

  • 一、pygetwindow模块简介
  • 二、pygetwindow常用方法
    • 1、常用方法
    • 2、window常用方法

一、pygetwindow模块简介

pygetwindow是一个Python第三方库,用于获取、管理和操作窗口。它提供了一些方法和属性,使得在Python程序中可以轻松地执行各种窗口操作。

通过pygetwindow库,你可以:
获取当前系统中所有打开窗口的列表。
根据窗口标题、窗口句柄等属性获取特定的窗口对象。
激活、最小化、最大化和关闭窗口。
获取和设置窗口的位置、大小和几何属性。
判断窗口是否最小化或可见。
等待窗口准备好,以及等待窗口存在。
移动和调整窗口的位置和大小。

pygetwindow库的目的是简化在Python中操作窗口的过程,它对多个平台(如Windows、Mac和Linux)都提供良好的支持,并且易于使用。可以在自动化测试、GUI脚本、窗口管理等场景中广泛应用。

本文只介绍在windows系统中使用。
安装:

pip install pygetwindow

二、pygetwindow常用方法

1、常用方法

在这里插入图片描述

import pygetwindow as gw

# 获取当前活跃窗口,返回类型:Win32Window
window = gw.getActiveWindow()

# 获取当前活跃窗口的 title名
gw.getActiveWindowTitle()

# 获取所有打开窗口标题的列表
# 结果:('', 'C:\\WINDOWS\\system32\\cmd.exe - pipenv  shell - python' ...)
gw.getAllTitles()

# 获取所有打开窗口的列表,返回类型是Win32Window的列表
windows = gw.getAllWindows()
for window in windows:
print(window)

# 返回位于给定屏幕坐标(x, y)处的窗口
gw.getWindowsAt(x, y)

# 根据标题名获取窗口列表
gw.getWindowsWithTitle(title)

2、window常用方法

通过pygetwindow获取到window之后,就可以对window进行一些操作:
在这里插入图片描述

import pygetwindow as gw
# 获取一个窗口,此处我用记事本打开一个txt文件
windows = gw.getWindowsWithTitle('1.txt - Notepad')
# 获取第一个
w = windows[0]

# 获取标题名
w.title

# 将指定窗口设为活跃窗口(最小化时无法打开)
w.activate()
# 窗口是否是活跃窗口
w.isActive

# 获取窗口的上、下、左、右像素值
# 还有获取上和下、左和上等等一系列方法
w.bottom
w.top
w.left
w.right
# 获取上左以及宽高:Box(left=377, top=317, width=528, height=614)
w.box

# 获取宽高
w.width
w.height

# 隐藏和显示窗口(真正看不到了)
w.hide()
w.show()

# 关闭窗口
w.close()

# 窗口是否是最大化/最小化
w.isMaximized
w.isMinimized

# 将窗口最大化
w.maximize()

# 将窗口最小化
w.minimize()

# 将最大化/最小化的窗口还原
w.restore()

# 右移x,左移y
w.move(x, y)
w.moveRel(x, y)
# 移动至屏幕的x, y处
w.moveTo(x, y)

# 窗口宽度扩大、高度扩大(往右下角扩大)
w.resize(widthOffset, heightOffset)
w.resizeRel(widthOffset, heightOffset)
# 设置窗口大小
w.resizeTo(newWidth, newHeight)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10个好用的Mac数据恢复软件推荐—恢复率高达99%

如果您正在寻找最好的 Mac 数据恢复软件来检索意外删除或丢失的文件,那么这里就是您的最佳选择。 我们理解,当您找不到 Mac 计算机或外部驱动器上保存的一些重要文件时,会感到多么沮丧和绝望。这些文件非常珍贵,无论出于何种原因…

通信原理板块——差错控制编码或纠错编码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、背景 数字信号在传输过程中&…

(免费领源码)python#flask#mysql旅游数据可视化81319-计算机毕业设计项目选题推荐

摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游数据可视化等问题,对旅游数据…

AD9361寄存器功能笔记之本振频率设定

LO的产生过程如图: 各个模块都有高灵活性。 1、参考时钟即是AD9361全局参考时钟,可以是外接晶振的片上DCXO,或是外部输入的有驱动能力的时钟信号。根据FM-COMMS5的设计,参考时钟可以使用时钟Buffer 40MHz晶振构成的参考频率源。 …

实战 - 在Linux上部署各类软件

前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没有一些具体的实操能够串联起来这些知…

算法-简单-二叉树-翻转、对称

记录一下算法题的学习8 翻转二叉树 翻转二叉树题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 举例:给定root[5,3,7,2,4,6,10] 翻转成为root[5,7,3,10,6,4,2] 即所有的根节点的左右节点都要互换位置,输出的…

BUUCTF 菜刀666 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 流量分析,你能找到flag吗 注意:得到的 flag 请包上 flag{} 提交 密文: 下载附件,解压得到一个.pcapng文件。 解题思路: 1、双击文件,打开wir…

两种典型的雷达框架,traditional chain (待深入了解)和Capon Beamforming Chain(已经了解)

如图1所示,第1种是被称作“traditional chain”, 它的处理思路是adc数据作range-FFT,再到doppler-FFT,构建range-Dopper map,再到cfar,最后对候选点作angle-FFT,当然,这是最经典的framework&…

查找二叉树中第k层中度为1的节点数量(可运行)

注意!!!!!如果没有输出结果,一定是输入的建树序列有错误,我建好了2棵树,如果没有输出结果,大家可以用这两棵树试。 main函数的btDepth(t,2)第二个参数是树的层数了k&…

SAP创建权限对象、角色、并分配角色

一、SU20:维护权限字段 二、SU21创建权限对象,分配权限字段: 三、SU24关联程序和自建权限对象(标准tcode会默认存在标准权限对象) 四、PFCG创建角色 五、SU01给用户分配角色 一、su20:维护权限字段 X点新建: 填入…

什么是策划能力?如何提高策划能力?

什么是策划能力? 通常我们理解的策划能力,大多指的是策划活动,比如举办一次活动先要进行活动策划,形成具体的行动方案,然后开展组织人力物力等资源,最终落地实施。策划能力包含活动策划,但又不…

vscode设置前进、后退快捷键

前言 在我们使用vscode编写程序时,经常需要在不同的文件之间跳来跳去,如果只是依靠个人记忆去操作会显得非常不方便。本文介绍如何设置vscode的前进、后退快捷键。 1 vscode设置前进、后退快捷键 点击“设置”图标,然后点击“键盘快捷方式…

NX二次开发UF_CAM_ask_lower_limit_plane_data 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_data Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 Query …

NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_status Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_status(tag_t object_tag, UF_PARAM_lwplane_status_t * status ) overview 概述 Query the…

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问

前言 网:我们通常说的是互联网;站:可以理解成在互联网上的一个房子。把互联网看做一个城市,城市里面的每一个房子就是一个站点,房子里面放着你的资源,那如果有人想要访问你房子里面的东西怎么办&#xff1…

酷开科技丨这么好用的酷开系统,不用真的会后悔!

掀开一幕幕精彩剧情,手机已经成为了我们身边必不可少的追剧神器。在这个信息爆炸的时代,我们渴望能够随时随地享受到精彩的影视作品,尤其是在家的休息的时候,希望电视也能同手机一样,想看啥就搜啥。酷开科技大内容战略…

基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)

原论文链接->DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Based on Deformable Convolution and Attention Mechanism | IEEE Journals & Magazine | IEEE Xplore DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Base…

关于使用宝塔页面Nginx的一些注意事项:Nginx不生效情况,以及解决方案

判断Nginx是否正常运行 使用宝塔页面保存Nginx配置后,有的时候不生效,这就说明Nginx没有正常运行 可以通过以下几种方式排查 通过宝塔 如果能够打开负载状态,说明Nginx运行正常 如果打不开,说明肯定是配置文件或者什么导致ngi…

探索人工智能领域——每日30个名词详解【day4】

目录 前言 正文 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以…