python通过win32gui获取应用窗口句柄,把窗口设置到最前面

1.获取当前电脑所有窗口

import win32gui
import win32con
import win32com.clientdef get_all_hwnd(hwnd, mouse):if (win32gui.IsWindow(hwnd) andwin32gui.IsWindowEnabled(hwnd) andwin32gui.IsWindowVisible(hwnd)):hwnd_map.update({hwnd: win32gui.GetWindowText(hwnd)})hwnd_map = {}
win32gui.EnumWindows(get_all_hwnd, 0)

2.迭代所有窗口,通过窗口标题获取到想要的窗口句柄

for h, t in hwnd_map.items():if t :if t == '小程序 - Google Chrome':# h 为想要放到最前面的窗口句柄print(h)

3.设置到最前面。由于窗口可能被最小化或者被其他窗口遮挡,所以调用2句命令分别处理这2种情况

for h, t in hwnd_map.items():if t :if t == '小程序 - Google Chrome':# h 为想要放到最前面的窗口句柄print(h)# 被其他窗口遮挡,调用后放到最前面win32gui.SetForegroundWindow(h)# 解决被最小化的情况win32gui.ShowWindow(h, win32con.SW_RESTORE)

*网上其他文章说可能命令不生效问题,但是我这边没遇到,如果上面命令不生效可以试试下面的代码:

for h, t in hwnd_map.items():if t :if t == '小程序 - Google Chrome':# h 为想要放到最前面的窗口句柄print(h)win32gui.BringWindowToTop(h)shell = win32com.client.Dispatch("WScript.Shell")shell.SendKeys('%')# 被其他窗口遮挡,调用后放到最前面win32gui.SetForegroundWindow(h)# 解决被最小化的情况win32gui.ShowWindow(h, win32con.SW_RESTORE)

完整代码:

import win32gui
import win32con
import win32com.clientdef get_all_hwnd(hwnd, mouse):if (win32gui.IsWindow(hwnd) andwin32gui.IsWindowEnabled(hwnd) andwin32gui.IsWindowVisible(hwnd)):hwnd_map.update({hwnd: win32gui.GetWindowText(hwnd)})hwnd_map = {}
win32gui.EnumWindows(get_all_hwnd, 0)for h, t in hwnd_map.items():if t :if t == '小程序 - Google Chrome':# h 为想要放到最前面的窗口句柄print(h)win32gui.BringWindowToTop(h)shell = win32com.client.Dispatch("WScript.Shell")shell.SendKeys('%')# 被其他窗口遮挡,调用后放到最前面win32gui.SetForegroundWindow(h)# 解决被最小化的情况win32gui.ShowWindow(h, win32con.SW_RESTORE)

*其他ShowWindow的可选值参考:

python选择应用窗口到最前面相关推荐

  1. python选择路径窗口_python选择路径

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 现在 python 主要在 前端 . 数据分析 两个方面比较火,相较于其它语言, ...

  2. python2中文输出代码_解决vscode python print 输出窗口中文乱码的问题

    解决vscode python print 输出窗口中文乱码的问题 发布时间:2020-09-17 23:53:25 来源:脚本之家 阅读:119 一.搭建 python 环境 在 VSC 中点击 F ...

  3. 1.19.7.Table API、SQL、数据类型、保留关键字、查询语句、指定查询、执行查询、语法、操作符、无排名输出优化、去重、分组窗口、时间属性、选择分组窗口的开始和结束时间戳、模式匹配

    1.19.7.Table API 1.19.8.SQL 1.19.8.1.概述 1.19.8.1.1.SQL 1.19.8.1.2.数据类型 1.19.8.1.3.保留关键字 1.19.8.2.查询语 ...

  4. Python tkinter多窗口的交互问题:子窗口无法获取数据

    Python tkinter多窗口的交互问题:子窗口无法获取数据 tkinter第二个.第三个子窗口数据不能交互响应的解决方法 先说结论:第二个.第三个子窗口生成时,不能用tk.Tk(),而应改为tk ...

  5. 如何打开python的交互窗口-Python多版本情况下四种快速进入交互式命令行的操作技巧...

    原标题:Python多版本情况下四种快速进入交互式命令行的操作技巧 因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇 ...

  6. MATLAB图形的修饰(选择图形窗口、线型点颜色、坐标轴、图形标注、栅格和图形叠加的设置)

    在绘制曲线时,MATLAB自动安排曲线的线型.颜色及坐标等属性,有时需要用户对图形的坐标.曲线和注释等进行进一步的修饰,以增加图像的可读性,突出结果的显示. MATLAB提供了一些函数可以对图形进行修 ...

  7. python弹出窗口 闪烁_Python。得到闪烁/闪烁的窗口

    首先,大多数程序通过调用^{}(或包装它的高级函数)来刷新窗口.但是,有一些应用程序主要来自微软,他们做一些定制的东西,在终端用户看来就像是在闪窗,但在封面下看起来可能不一样.希望你不在乎任何这样的定 ...

  8. python创建一个json_如何为Python选择一个更快的JSON库

    使用JSON越多, 你就越有可能遇到JSON编码或解码瓶颈.Python的内置库也不错, 但是还有多个更快的JSON库可用: 如何选择使用哪一个呢? 事实是,没有一个正确的答案,没有一个最快的JSON ...

  9. Python选择结构注意事项

    以百分制成绩转换为字母等级成绩为例,简单介绍一下Python选择结构需要注意的事项. 1.缩进必须要正确 在Python代码中,缩进是非常重要的.如果缩进不正确,会导致语法错误无法运行,也可能会导致逻 ...

  10. 如何打开python的终端窗口,python程序窗口怎么打开

    python软件如何开启 谷歌人工智能写作项目:小发猫 python怎么打开一个终端窗口 如何进入python交互界面 Python交互模式有两种:图形化的交互模式或者命令行的交互模式.打开步骤:首先 ...

最新文章

  1. 分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析
  2. Python 3 文件和字符编码
  3. jhipster 配置 mysql_JHipster技术栈定制 - JHipster Registry配置信息加密
  4. shell for循环案例:自动批量添加iptables应用端口规则
  5. linux系统预定义变量有哪些,Shell预定义变量用法详解
  6. 4.AngularJS四大特征之二: 双向数据绑定
  7. 检测Product 或者Object是否被IBASE 引用的report
  8. 2021牛客暑期多校训练营1 G Game of Swapping Numbers 思维 + 巧妙的转换
  9. Sharepoin学习笔记—架构系列--08 Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)
  10. 从此走上一条iOS程序猿不归路。。。
  11. 主板和cpu搭配表_主板和CPU如何搭配?主板和处理器搭配方法
  12. 帝国7.5标签+在PHP7.0,帝国CMS7.5支持PHP7.*系列,兼容性更好
  13. DR模式 + keepalived
  14. readelf命令解析及演示
  15. 【深入理解JS核心技术】1.在 JavaScript 中创建对象的可能方式有哪些?
  16. CSS3硬件加速 - GPU加速
  17. 今天正式入职了字节跳动,分享点经验
  18. 免费下载QFP器件手工焊接指南
  19. 2022-08-23:以下go语言代码输出什么?A:map[baz:2 foo:0];B:map[bar:1 baz:2];C:map[baz:2];D:不确定。 package main impo
  20. OpenCv基础知识(入门)

热门文章

  1. javassist组件分享利用javassist动态创建一个类
  2. 不能从远程创建com+对象_链路追踪SkyWalking源码分析——Collector Remote远程通信服务...
  3. 二叉树的右视图 python_【leetcode刷题】T128-二叉树的右视图
  4. C#:SQL查询结果生成datatable后,根据min、max查询datatable中min到max的数据,并生成新的datatable
  5. Javascript:流程控制
  6. 如何优化Java GC
  7. C++_虚函数的实现的基本原理
  8. Hierarchical Softmax、CBOW词带模型抽象化及其公式推理以及python代码实现包括注释
  9. 编译原理中:短语,直接短语,句柄
  10. C/C++内存使用之malloc/free,new/delete