Python—-pywin32如何获取窗口句柄
Python 如何 获取 窗口 句柄 Pywin32
2023-06-13 09:12:43 时间
大家好,又见面了,我是你们的朋友全栈君。
Python—-pywin32如何获取窗口句柄
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 = False
for i in hWnd_child_list:
if get_clasname(i) == 'TrayNotifyWnd':
flag = True
if 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)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162549.html原文链接:https://javaforall.cn
相关文章
- 【python教程入门学习】PyCharm下载和安装教程(包含配置Python解释器)
- Python获取时间戳_python爬虫时间戳
- Python怎么输入小数和整数_python输入非负整数
- Python IDE —— PyCharm的基本介绍「建议收藏」
- python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
- python监控网页内容变化_使用Python监控文件内容变化代码实例
- 情人节限定!教你如何用Python拼接女神的照片~
- 【说站】python模块如何传入参数
- 【说站】python中fail函数如何使用
- 【说站】python如何下载模块
- 【说站】如何用python绘制彩色蟒蛇
- 【说站】python探针如何实现
- 【说站】Python with as如何使用
- 【说站】python标记删除如何实现?
- 如何为pycharm配置Python解释器_anaconda3添加环境变量
- 实战 | 如何用 Python 统计 Jira 数据并可视化
- 100个Python实战项目(十一)如何使用 Python 获取电话号码信息?
- python抛出异常写法_零基础学 Python(32):如何抛出和捕获异常?「建议收藏」
- Python文件名后缀_python获取目录下所有文件的文件名
- python制作自动交易程序_Python如何实现自动化交易
- win32api python 手册_windows api如何使用
- python如何生成随机数_Python生成50个随机数
- Python编程经典案例【考题】找出两个字符串中相同字符和不同字符
- pycharm如何调试python程序_Pycharm断点调试Python程序的步骤方法
- python使用opencv如何保存图片_OpenCV Python 保存图片
- 【Python代码分享】如何使用 Python 获取当前系统的类型名称
- 软件测试|教你如何用Python获取昨天今天明天的日期
- Python如何获取页面上某个元素指定区域的html源码?
- Python 实现社交网络可视化,看看你的人脉影响力如何
- 如何在Linux中安装Python?(linux安装python)
- Python中给List添加元素的4种方法分享