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 相关文章推荐
Python入门_浅谈逻辑判断与运算符
May 16 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
python实现图片处理和特征提取详解
Nov 13 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python tornado微信开发入门代码
Aug 24 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
Python中pymysql 模块的使用详解
Aug 12 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
Pandas DataFrame求差集的示例代码
Dec 13 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
PHP+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
java解析json方法总结
2019/05/16 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python中文竖排显示的方法
2015/07/28 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
python实现ping命令小程序
2020/12/28 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
HTML5 weui使用笔记
2019/11/21 HTML / CSS
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
满月酒答谢词
2014/01/14 职场文书
委托书样本
2014/04/02 职场文书
高一学生期末评语
2014/04/25 职场文书
绵山导游词
2015/02/05 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python