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的PEAK来适配协议的教程
Apr 14 Python
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
Python 多线程抓取图片效率对比
Feb 27 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
python十进制转二进制的详解
Feb 07 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python如何设置静态变量
Sep 07 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP 高手之路(二)
2006/10/09 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php生成shtml类用法实例
2014/12/09 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
小程序自定义日历效果
2018/12/29 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python requests使用socks5的例子
2019/07/25 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
应届生如何写自荐信
2014/01/05 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
自我鉴定标准格式
2014/03/19 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
解析目标检测之IoU
2021/06/26 Python
详解pytorch创建tensor函数
2022/03/22 Python