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和pywin32实现窗口查找、遍历和点击的示例代码相关推荐

  1. python编写界面遍历_python和pywin32实现窗口查找、遍历和点击

    1.如何利用句柄操作windows窗体 首先,获得窗体的句柄  win32api.FindWindows() 第二,获得窗体中控件的id号,spy++ 第三,根据控件的ID获得控件的句柄(hwnd)  ...

  2. python 更新数据库历史_python 实现数据库中数据添加、查询与更新的示例代码

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  3. 怎么把竖列中的数相加python_关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码...

    pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这篇文章主要给大家介绍了关于python中pandas.DataFrame对行与列求和及添加新 ...

  4. python交互界面制作_Python 如何编写交互界面?_后端开发

    c语言怎么实现三个数从小到大输出?_后端开发 方法:1.使用if语句对数字x与y进行比较,若x>y则交换x和y的值:2.使用if对x与z进行比较,若x>z则交换x和z的值:3.使用if对y ...

  5. python交互界面实例_Python面向对象编程扑克牌发牌程序,另含大量Python代码!

    1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后, ...

  6. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  7. python编写数学公式大全_python - 用python编写数学公式 - 堆栈内存溢出

    我正在用python编写此公式. 请查看图片我正在使用以下代码. 它总是会出错. import math import matplotlib matplotlib.use('TkAgg') from ...

  8. python编写脚本教程_python编写一个会算账的脚本的示例代码

    python算账脚本 1.假如小明卡里有10000元去商场买东西发现钱不够又向父母借了5000账单如下 2.以下脚本就能实现上面的运算 from time import strftime import ...

  9. 用python编程一个图形_Python的图形化窗口编程(1)

    python能做的东西太多,以致大多数人在学习的过程中出现了迷茫.但是,无论学习哪个方向,都比原地观望要好. 我们今天学习python的图形界面制作,python的界面制作有很多. 很多人吐槽pyth ...

最新文章

  1. solr7.6 安装配置
  2. linux ns,Linux Namespace (ns)
  3. HeartBeat 集群组件概述
  4. tensorflow(GPU)使用
  5. 简单的Flash GUI工具(Simple Flash GUI Tool)
  6. mysql 左右值算法详解_无限分类左右值算法的常规操作逻辑
  7. 同时启动多个Tomcat服务器
  8. 如何使用jQuery设置输入文本的值
  9. supervisor简介
  10. 食饵捕食者模matlab,数学建模经典基于MATLAB的三种群食饵_捕食者模型数值解
  11. 外卖扫码点餐全开源小程序源码
  12. 品质qc工程图_QC工程图-(品管)
  13. 电力自动化系统为何需要卫星同步时钟装置?
  14. 未来互联网+大数据时代
  15. 福利 | 区块链寒冬的“另类”火锅吃法
  16. 数据库性能系列之索引(中)
  17. 线性规划单纯形法python实现与代码详细解读
  18. html查找器如何卸载,租号器要求卸载影子系统-怎么完全删除影子系统
  19. 博士在读,在家无法科研的你,在忙些什么?
  20. Win7怎么安装?推荐3种Windows7安装方法

热门文章

  1. html+dom能做什么,jQuery能做什么?
  2. 吉他谱----see you again
  3. 3ds Max制作碗实例教程
  4. 在latex或者mathtype中如何输入花体,如拉式量L
  5. 水平+垂直布局-css (借鉴)
  6. llinux下kvm虚拟化
  7. 842. Split Array into Fibonacci Sequence
  8. [Kali][VMware][2020][窗口大小][分辨率]高分辨率自适应
  9. c语言笔记之数组和指针(初学者)
  10. mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2