python和pywin32实现窗口查找、遍历和点击的示例代码


Posted in Python onApril 01, 2020

Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。

1.通过类名和标题查找窗口句柄,并获得窗口位置和大小

import win32gui
import win32api
classname = "MozillaWindowClass"
titlename = "百度一下,你就知道 - Mozilla Firefox"
#获取句柄
hwnd = win32gui.FindWindow(classname, titlename)
#获取窗口左上角和右下角坐标
left, top, right, bottom = win32gui.GetWindowRect(hwnd)

2.通过父句柄获取子句柄

def get_child_windows(parent):  
 '''  
 获得parent的所有子窗口句柄
  返回子窗口句柄列表
  '''  
 if not parent:   
  return  
 hwndChildList = []  
 win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd), hwndChildList)   
 return hwndChildList 

#获取某个句柄的类名和标题
title = win32gui.GetWindowText(hwnd)  
clsname = win32gui.GetClassName(hwnd)  

#获取父句柄hwnd类名为clsname的子句柄
hwnd1= win32gui.FindWindowEx(hwnd, None, clsname, None)

3.鼠标定位与点击

#鼠标定位到(30,50)
win32api.SetCursorPos([30,150])
#执行左单键击,若需要双击则延时几毫秒再点击一次即可
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
#右键单击
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

4.发送回车键

win32api.keybd_event(13,0,0,0)
win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)

5.关闭窗口

win32gui.PostMessage(win32lib.findWindow(classname, titlename), win32con.WM_CLOSE, 0, 0)

win32gui遍历窗口并设置窗口位置

import win32gui
import win32con
def reset_window_pos(targetTitle): 
  hWndList = [] 
  win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList) 
  for hwnd in hWndList:
    clsname = win32gui.GetClassName(hwnd)
    title = win32gui.GetWindowText(hwnd)
    if (title.find(targetTitle) >= 0):  #调整目标窗口到坐标(600,300),大小设置为(600,600)
      win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 600,300,600,600, win32con.SWP_SHOWWINDOW)
      
reset_window_pos("windowName")

到此这篇关于python和pywin32实现窗口查找、遍历和点击的示例代码的文章就介绍到这了,更多相关pywin32 窗口查找、遍历和点击内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
python中黄金分割法实现方法
May 06 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
python验证码识别的示例代码
Sep 21 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
python自动脚本的pyautogui入门学习
Apr 01 #Python
Python自动重新加载模块详解(autoreload module)
Apr 01 #Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 #Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 #Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 #Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 #Python
详解Python中pyautogui库的最全使用方法
Apr 01 #Python
You might like
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
戴尔英国官网:Dell英国
2017/05/27 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
教学实习自我评价
2014/01/28 职场文书
食品安全宣传标语
2014/06/07 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
2019入党申请书格式
2019/06/25 职场文书