python之windows窗口置顶
通过win32gui实现:
import win32gui, win32con, win32process,win32api
class Op():def __init__(self, pid, tid, name):self.pid = pidself.tid = tidself.name = namedef setForegroundWindowByWin32GUI(self):# 获取当前游戏的窗口句柄hwnds = self.get_obj_hwnd()hwnd = hwnds[0]# 显示当前游戏的窗口hForeWnd = win32gui.GetForegroundWindow()FormThreadID = win32api.GetCurrentThreadId()CWndThreadID = win32process.GetWindowThreadProcessId(hForeWnd)win32process.AttachThreadInput(CWndThreadID[0], FormThreadID, True)win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)result = win32gui.SetForegroundWindow(hwnd)win32process.AttachThreadInput(CWndThreadID[0], FormThreadID, True)if result:return Trueelse:return Falsedef get_obj_hwnd(self):def _EnumWindowsCallback(hwnd, hwnds):TId, PId = win32process.GetWindowThreadProcessId(hwnd)if PId == self.pid and TId == self.tid:if not win32gui.GetParent(hwnd) and win32gui.IsWindowVisible(hwnd):hwnd_by_findWindow = win32gui.FindWindow(None,self.name)if hwnd != hwnd_by_findWindow:print('Game[{}]: hwnd_by_findWindow[{}] not equal, hwnd may be error'.format(self.name, hwnd_by_findWindow))hwnds.append(hwnd)hwnds = []win32gui.EnumWindows(_EnumWindowsCallback, hwnds)return hwnds
不通过win32gui这个第三方库实现:
class Op():def __init__(self, pid, tid, name):self.pid = pidself.tid = tidself.name = namedef setForegroundWindow(self):hwnds = self.get_obj_hwnd_with_syspkg()hwnd = hwnds[0]hForeWnd = windll.user32.GetForegroundWindow()FormThreadID = win32api.GetCurrentThreadId()CWndThreadID = win32process.GetWindowThreadProcessId(hForeWnd)win32process.AttachThreadInput(CWndThreadID[0], FormThreadID, True)windll.user32.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)result = windll.user32.SetForegroundWindow(hwnd)win32process.AttachThreadInput(CWndThreadID[0], FormThreadID, True)if result:return Trueelse:return Falsedef get_obj_hwnd_with_syspkg(self):hwnds = []def _EnumWindowsCallback(hwnd, lParam):TId, PId = win32process.GetWindowThreadProcessId(hwnd)if PId == self._pid and TId == self._tid:if not windll.user32.GetParent(hwnd) and windll.user32.IsWindowVisible(hwnd):hwnd_by_findWindow = windll.user32.FindWindowW(self.name, None)if hwnd != hwnd_by_findWindow:print('Game[{}]: hwnd_by_findWindow[{}] not equal, hwnd may be error'.format(self.name, hwnd_by_findWindow))hwnds.append(hwnd)EnumWindows = windll.user32.EnumWindows# 声明原型,注意需要首先要声明返回值类型pFunc = WINFUNCTYPE(c_int, HWND, LPARAM)pFuncHandle = pFunc(_EnumWindowsCallback)EnumWindows(pFuncHandle, None)return hwnds
python之windows窗口置顶相关推荐
- QT程序 windows窗口置顶和linux窗口置顶遇到的问题和解决方案
一.QT 窗口置顶 一般情况下,我们开发QT桌面应用程序如需用到窗口置顶操作时,会这样做: setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHin ...
- windows窗口置顶--Windows on Top
目录 工具界面(非常简介): 使用方法 工具设置 快捷键设置及其他设置 在工作的时候,有时需要频繁切换窗口,而有时候需要看实时的数据请求,将窗口调小,又不好后面代码修改操作.这一款工具可以随时.将任意 ...
- Windows On Top v3.8.0 Windows窗口置顶小工具单文件版
前言 Window On Top能够让任意的窗口总是在最顶层,那么当你有时需要两个窗口同时打开时就无需频繁的切换了. Window On Top Window On Top 的使用方法十分简单,在 W ...
- python windows窗口置顶_Python入门:第一个程序“Hello, world”
本文主要内容 安装Python 使用IDLE和基础交互模式 编写一个简单的程序 使用IDLE的Python shell窗口 本章将介绍Python和IDLE的下载.安装和启动过程,IDLE是Pytho ...
- python windows窗口置顶_想用Python编程却不知如何下手?一篇搞定编程准备工作
导读:为了简化Python编程的学习难度,开发过程中的工具.环境尽量使用同一套,此后所有的编程环境都以Windows系统下Python3.8为准,代码编辑器及IDE(集成开发环境)使用VS Code. ...
- Qt 调用 Windows 接口实现窗口置顶
前言 用 Qt 做 Windows 软件开发,有时候会用到窗口置顶功能,其实 Qt 有自带的接口来实现窗口置顶,但是效果并不太理想,比如说没办法置顶于系统标题栏,或者在全屏状态下如果有键盘事件的时候窗 ...
- Windows 任意窗口置顶显示
让任意窗口置顶显示 Window TopMost Control 是一款非常小巧简单的 Windows 软件,功能也只有一个--就是让任意窗口置顶显示. 官网:Window TopMost Contr ...
- 运行python程序的cmd窗口置顶状态和与最小化有什么区别
运行python程序的cmd窗口置顶状态表示该窗口将一直保持在其他窗口的最上面,即使用户在操作其他窗口时也能看到它.而最小化则表示该窗口将被隐藏,用户需要在任务栏中寻找并打开它.
- 设置窗口置顶_这三个应用,每一个都能让你置顶。
| 当你有多个窗口同时打开,置顶其中某个或某些,能够方便你对比.学习.抄写--但不是所有软件都有这个功能,所以你需要今天的小干货.| ----------- 你的高效生活视频书. 将窗口置顶,可以方便 ...
最新文章
- 接口访问次数_系统运行缓慢,CPU 100%,Full GC次数过多,这一招帮你全搞定
- 字节跳动面试官:你离50w年薪就差答对了这个算法题!
- MapReduce 计数器简介
- Unet项目解析(5): 数据封装、数据加载、数据显示
- java 原子类能做什么_Java原子类中可以靠版本号比较为什么还需要CAS操作??
- Java命令学习系列(三)——Jmap
- React开发(235):document.body.clientHeight
- “约见”面试官系列之常见面试题之第五十篇之title和alt的区别(建议收藏)
- c语言上机填空改错试题,2013年计算机二级C语言上机试题六十二及答案
- python给函数设置超时时间已到_在 Linux/Mac 下为Python函数添加超时时间
- weka下载安装以及源码运行
- 原码、反码、补码以及补码是怎么来的
- 网站防止CC攻击的方法,CC攻击原理及防范方法
- win10系统重装鼠标右键响应慢怎么办
- A记录、CNAME、MX记录、NS记录的区别和联系
- 【react】---Hooks的基本使用---【巷子】
- DOTA高考全国卷A卷
- 互联网大佬纷纷搞养殖,这是为哪般~~~
- linux 筛选文件,「Linux基础知识」grep文件内容筛选命令的使用
- arcgis javascript Measurement的使用