在自动化测试过程中,常常需要模拟按键的操作,比如像窗口发送一个按键,实现鼠标点击的功能,在上一篇文章中,我和大家讨论了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!

最新文章

  1. php调用web service接口(.net开发的接口)
  2. PHP数学函数
  3. java Long的iniValue出错
  4. YTU 3002: 出栈顺序(栈和队列)
  5. R-Studio
  6. 支持在安卓中UI(View)的刷新功能
  7. PostgreSQL的 initdb 源代码分析之一
  8. Linux df 命令
  9. Kettle中通过触发器方式实现数据 增量更新
  10. 用Visual Studio创建gtest动态链接库工程
  11. iOS项目生成通用Windows应用
  12. Oracle基础知识整理
  13. css 两段对齐和超出部分...
  14. 最小标示法模板 poj1509
  15. Elasticsearch 备忘
  16. 昨天办了一张地铁卡,我想到一个app
  17. 本科毕业平均年薪 30 万!经济寒冬挡不住 AI 人才的火热!
  18. PHP阿里云云解析签名, 通过API 绑定域名到动态 ip
  19. sql查询job
  20. PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别

热门文章

  1. 打造自己的JavaScript武器库
  2. 对话框窗口最大化盖住任务栏问题!OnGetMinMaxInfo,WM_GETMINMAXINFO
  3. [windows]解决Win7访问Windows 2003、XP共享慢的问题
  4. MySQL检查死锁简介
  5. 快速生成导入亿级测试数据到sqlserver
  6. Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理
  7. go语音实战读后感——一
  8. CeontOS6.5安装php环境
  9. tp5对接支付宝支付简单集成
  10. java在线聊天项目1.3版 ——设计好友列表框功能