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. exchange 2013 lesson 6 CAS HA installing
  2. android 屏幕完美适配,Android完美适配不同屏幕
  3. Stark 组件:快速开发神器 —— 自动生成 URL
  4. .NETStandard FreeSql v0.0.9 功能预览
  5. 工作109:token要登录之后才有
  6. python点击按钮改变图片_单击tkinter按钮时更改图片
  7. 千元满血续航王!iQOO Z5发布 售价1799元起
  8. 快解析助力服装企业实现ERP远程外网访问
  9. (Applied Intelligence-2022)TransGait: 基于多模态的步态识别与集合Transformer
  10. 公司项目上线正规流程
  11. 离线安装 Enhanced Class Decompiler
  12. Java Mail 发送邮件126、163 、QQ
  13. 技术帖:如何把mobi文件转化成pdf
  14. 高中生可发表论文的学术期刊涵盖TCR历史期刊
  15. 【线段树区间合并】BZOJ1593-[Usaco2008 Feb]Hotel 旅馆
  16. RAP开发入门-运行过程简析(三)
  17. 快手7亿用户增长实践
  18. python 函数的使用方法
  19. 如何用手机开发单片机编写51或arduino等程序?
  20. vue指令-v-for

热门文章

  1. python中cursor操作数据库(转)
  2. 【原】docker部署单节点consul
  3. IDEA设置取消自动显示参数提示
  4. CF468B Two Sets
  5. Java并发编程笔记之Semaphore信号量源码分析
  6. 查找工具locate和find
  7. ECMAScript 实现继承的几种方式
  8. Linux用户与“最小权限”原则
  9. 本来中午打算应付下随便吃点,可是连盐都没有放的辣椒炒蛋实在是令人不快...
  10. oracle性能优化之awr分析