Python----pywin32如何获取窗口句柄
Python----pywin32如何获取窗口句柄
- 一:介绍要用到的库
- 二:显示窗口的属性
- 1. 获取所有窗口的句柄
- 2.获取窗口的子窗口句柄
- 3.获取句柄的标题
- 4.获取窗口类名
- 三、实际操作
- 1.置顶和取消
- 2.显示和隐藏窗口
- 四、案例演示
- 显示和隐藏托盘
halo,各位读者,本栏目开设一个围绕着“如何用Python来制作PC软件”展开。
当我们想用处理Windows的软件窗口时,常常会碰到想将窗口置顶、隐藏和显示等等,还有读者想将电脑托盘、任务栏等都隐藏的情况。本篇文章就是带领读者学习窗口句柄,并且如何应用Python带的win32 模块来读取界面中各个窗口的句柄。
希望通过此篇文章,可以让读者朋友跟着步骤操作,最终可以做出自己的小软件。
一:介绍要用到的库
import sys
import win32gui
import win32con
二:显示窗口的属性
1. 获取所有窗口的句柄
def get_all_windows():hWnd_list = []win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWnd_list)print(hWnd_list)return hWnd_list
>>[66364, 66014, 65964, 65854, 65850, 65846, 65842, 65826, 65812, 65802, 65858, 65862, 65876, 65794, ....]
2.获取窗口的子窗口句柄
def get_son_windows(parent):hWnd_child_list = []win32gui.EnumChildWindows(parent, lambda hWnd, param: param.append(hWnd), hWnd_child_list)print(hWnd_child_list)return hWnd_child_list
>>[66364, 66014, 65964, 65854, ...]
3.获取句柄的标题
def get_title(hwnd):title = win32gui.GetWindowText(hwnd)print('窗口标题:%s' % (title))return title
>>窗口标题:设置
4.获取窗口类名
def get_clasname(hwnd):clasname = win32gui.GetClassName(hwnd)print('窗口类名:%s' % (clasname))return clasname
>>窗口类名:ApplicationFrameWindow
三、实际操作
1.置顶和取消
窗口置顶
def set_top(hwnd):win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0, 0, 0, 0,win32con.SWP_NOMOVE | win32con.SWP_NOACTIVATE | win32con.SWP_NOOWNERZORDER | win32con.SWP_SHOWWINDOW | win32con.SWP_NOSIZE)
窗口取消置顶
def set_down(hwnd):win32gui.SetWindowPos(hwnd, win32con.HWND_NOTOPMOST, 0, 0, 0, 0,win32con.SWP_SHOWWINDOW | win32con.SWP_NOSIZE | win32con.SWP_NOMOVE)
2.显示和隐藏窗口
根据窗口名称获取句柄
#根据窗口名称获取句柄
def get_hwnd_from_name(name):hWnd_list = get_all_windows()for hwd in hWnd_list:title = get_title(hwd)if title == name:return hwd
窗口显示
def xianshi(name):hwd = get_hwnd_from_name(name)win32gui.ShowWindow(hwd, win32con.SW_SHOW)
窗口隐藏
def yingcang(name):hwd = get_hwnd_from_name(name)win32gui.ShowWindow(hwd, win32con.SW_HIDE)
四、案例演示
显示和隐藏托盘
获取右下角托盘的任务句柄
#获取右下角托盘的任务句柄
def get_tuopan_hwd():handle = win32gui.FindWindow("Shell_TrayWnd", None)hWnd_child_list = get_son_windows(handle)[1:]tuopan_hwd_list = []flag = Falsefor i in hWnd_child_list:if get_clasname(i) == 'TrayNotifyWnd':flag = Trueif flag:tuopan_hwd_list.append(i)return tuopan_hwd_list
隐藏托盘
def yingcang(name=''):tuopan_hwd_list = get_tuopan_hwd()if name == '':for i in tuopan_hwd_list[:7] :#[:7]因为要保留一些基本的内容,也可以全部隐藏win32gui.ShowWindow(i, win32con.SW_HIDE)else:win32gui.ShowWindow(name, win32con.SW_HIDE)
显示托盘
def xianshi(name = ''):tuopan_hwd_list = get_tuopan_hwd()if name == '':for i in tuopan_hwd_list:
win32gui.ShowWindow(i, win32con.SW_SHOW)else:win32gui.ShowWindow(name, win32con.SW_SHOW)
Python----pywin32如何获取窗口句柄相关推荐
- python 打开exe获取窗口句柄_使用Python快速启动多个PC客户端
点击关注,我们共同每天进步一点点! 作为一枚游戏测试,日常工作的时候,经常需要同时开着多个游戏账号进行测试. 以Unity打包出来的PC客户端为例,每次都需要双击运行exe程序,等着游戏启动后,因为同 ...
- python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法
1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...
- python 获取窗口句柄 模拟 点击按钮,Python获取浏览器窗口句柄过程解析
句柄(handle)是C++程序设计中经常提及的一个术语.它并不是一种具体的.固定不变的数据类型或实体,而是代表了程序设计中的一个广义的概念.句柄一般是指获取另一个对象的方法--一个广义的指针,它的具 ...
- 易语言python模块_Python获取指定模块基址
image 因为昨天研究FPS游戏时候,发现有个动态地址每次重启电脑都会不同,然后因为有过用C和易语言编写指定模块名获取基址的经验,所以打算用Python来试试 在网上搜索了一点资料,发现有吾爱有一篇 ...
- Python pywin32 整理 阴阳师自动化
Python pywin32 整理 && 阴阳师自动化 前言 利用pywin32封装的一些常用功能(干货) 1. 获取当前坐标 2. 移动鼠标至指定坐标位 3. 鼠标左键单击 4. 获 ...
- Python PyWin32 模块
PyWin32是Python在Windows平台上的一个扩展库,提供了访问Windows API.COM接口和其他Windows原生功能的功能.它允许开发者使用Python语言来编写与Windows操 ...
- delphi 鼠标获取窗口句柄_Python 脚本自动对窗口进行截图
利用Python自带的win32api和win32con.win32gui等模块,我们能执行许多windows下的自动化操作.比如两个窗口的自动点击操作,从软件中的窗口复制文本到txt中,甚至是截图操 ...
- Python使用tpot获取最优模型并抽取最优模型模型参数
Python使用tpot获取最优模型并抽取最优模型模型参数 目录 Python使用tpot获取最优模型并抽取最优模型模型参数 #数据划分
- Python使用tpot获取最优模型、将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果、概率、属于哪一折与测试集标签、结果、概率一并整合输出为结果文件
Python使用tpot获取最优模型.将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果.概率.属于哪一折与测试集标签.结果.概率一并整合输出为结果文件 目 ...
最新文章
- mysql的判断更新_mysql判断记录是否存在,存在则更新,不存在则插入
- [论文翻译]Pedestrian Alignment Network for Large-scale Person Re-Identification
- oracle 微信公众号,关于微信公众号贴代码的方法
- 信息学奥赛一本通(1044:判断是否为两位数)
- Android 驱动(5)---MTK 平台分区表
- Java标识符和数据类型
- DNS无法解析IP_通过YouTube的封杀窥视DNS原理
- Kubernetes Pod 优先级和抢占
- 程序员面试金典——7.7第k个数(丑数)
- 二分查找时间复杂度分析
- 机顶盒固件简单做刷机包方法
- 9轴电子罗盘工作原理,校准与应用
- HCIE-Cloud题库
- linux无线网卡创建ap,Linux中使用hostapd创建无线AP及相关问题的处理方法
- puppet master/agent
- 【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
- 如何使用虚拟机运行“小HomeKit”智汀家庭云
- JD京东爬虫-商品评论爬虫-----附源码
- [最优化]凸集的定义与常见凸集
- stay hungary stay foolish
热门文章
- 这届打工人因何离职?调查结果出人意料:薪酬不是第1位,企业文化重要10倍...
- C语言判断字符串包含
- [浏览器_1]-Windows 安装微软 Edge 浏览器以及配置 CSDN 浏览器助手
- Toastmasters会议小结
- 【无标题】secureCRT 连不上 linux 解决办法
- php 三种文件下载至浏览器的方法
- VBA ---- 单、多条件筛选
- “走进数字藏品,福利不停歇”活动第一期•第1场获奖公示
- 分享几个金融相关的网站
- html 仿京东收起展开,网页顶部自动下拉/收缩广告代码(仿京东)