Python之窗口操作之find_window,set_foreground等
在自动化测试过程中,常常需要模拟按键的操作,比如像窗口发送一个按键,实现鼠标点击的功能,在上一篇文章中,我和大家讨论了python文件生成为不依赖与python库的exe文件的方式(需要了解的朋友戳这里),结合上篇的方法,这里和大家分享使用python对窗口进行操作的方法,如果还不明白这个功能的童鞋们,可以结合autoit中的window操作对比理解。
今天就find_window,set_foreground等方法和大家分享,代码如下:
import win32gui
import re, sys class WindowMgr():
'''Encapsulates some calls to the winapi for windows management'''
def __init__(self):
'''Constructor'''
self._handle = None def find_window(self, class_name = None, window_name):
'''find a window by its window_name'''
self._handle = win32gui.FindWindow(class_name, window_name) def __window_enum_callback(self, hwnd, wildcard):
'''pass to win32gui.EnumWindows() to check all the opened windows'''
if re.match(wildcard, str(win32gui.GetWindowsText(hwnd))) != None
self._handle = hwnd def find_window_wildcard(self, wildcard):
self._handle = None
win32gui.EnumWindows(self.__window_enum_callback, wildcard) def set_foreground(self):
'''put the window in the forground'''
win32gui.SetForegroundWindow(self._handle) def main():
w = WindowMgr()
w.find_window_wildcard('.*Hello*.')
w.set_foreground() if __name__ == '__main__':
sys.exit(main())
其中win32gui需要大家安装pywin32模块,pywin32模块下载戳这里!
感谢阅读,希望能帮到大家!
Published by Windows Live Writer!
Python之窗口操作之find_window,set_foreground等的更多相关文章
- Python tkinter模块弹出窗口及传值回到主窗口操作详解
这篇文章主要介绍了Python tkinter模块弹出窗口及传值回到主窗口操作,结合实例形式分析了Python使用tkinter模块实现的弹出窗口及参数传递相关操作技巧,需要的朋友可以参考下 本文实例 ...
- python 前置程序窗口,还原最小化的窗口
python 前置程序窗口,还原最小化的窗口 在网上找了比较久,大多是: win32gui.FindWindow(class_name, window_name) win32gui.SetForegr ...
- Python初学——窗口视窗Tkinter
此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口1.1 什么是 ...
- [python] 网络数据采集 操作清单 BeautifulSoup、Selenium、Tesseract、CSV等
Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesseract.CSV等 Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesse ...
- python subprocess相关操作
python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...
- python高级之操作数据库
python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...
- Python 文件常见操作
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- uCGUI窗口操作要点
uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...
随机推荐
- iOS 自适应高度,改变字体颜色
#define kMainBoundsWidth ([UIScreen mainScreen].bounds).size.width //屏幕的宽度 #define kFont [UIFont sys ...
- UIView和Masonry实现动画效果
Masonry 实现动画效果如下: //button点击方法 - (void)clickedButton { static BOOL isMove; //默认是NO Weakify(weakSelf) ...
- java.lang.IllegalArgumentException: name MUST NOT NULL! at org.nutz.dao.impl.NutDao.fetch
Nutz传值报错问题 作者:Vashon 时间:20150902 平台:Nutz框架 Java后台方法中拿值时报的错 报错信息: java.lang.IllegalArgumentException: ...
- Gitlab User Guide
Installation Configuration Set user name and email Add SSH keys Repository Create New Repository Clo ...
- Spring MVC系列[1]—— HelloWorld
1.导入jar包 ioc mvc 复制spring-mvc.xml到src目录下. 2.web.xml <?xml version="1.0" encoding=" ...
- Nginx常用命令介绍
#安装nginx准备工作yum install gcyum -y install pcre-develyum install -y zlib-devel #编译安装./configuremake &a ...
- EJB2.0教程 详解EJB技术及实现原理
EJB是什么呢?EJB是一个J2EE体系中的组件.再简单的说它是一个能够远程调用的javaBean.它同普通的javaBean有两点不同.第一点,就是远程调用.第二点,就是事务的功能,我们在EJB中声 ...
- ejb2.0用本地引用提高EJB访问效率
用本地引用提高EJB访问效率 EJB 1.0和1.1规范只定义了一种在EJB组件中引用另一组件的方法,即通过Bean的远程接口.如果两个Bean都在同一个容器之内,则这种网络开销是不必要的.为解决这个 ...
- More helpful Cocos2d and Gaming macros
More helpful Cocos2d and Gaming macros Here are w few macros that i wrote to make the code more read ...
- Android(java)学习笔记144:网络图片浏览器的实现(ANR)
1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...