pywinauto模块 窗口自动化操作相关
相关链接
文档:https://pywinauto.readthedocs.io/en/latest/index.html
资料:https://www.cnblogs.com/programer-xinmu78/p/10661257.html
流程分析
一、实例化、打开程序/连接程序
二、窗口指定、菜单/弹窗指定
三、控件指定、按钮指定
四、其他指定
五、鼠标/键盘等点击/输入操作
代码内容
# -*- coding: utf-8 -*-'''
深入:一、菜单选项二、弹出菜单选项点击继续持续深入pywin32比较好'''import pywinauto
from pywinauto.application import Application# =============================================================================
# #自建函数 显示所有菜单及子菜单
# =============================================================================
def showMenus(dlg):for x in dlg.menu_items(): #显示当前窗口菜单项print(x['text'])for y in x['menu_items']['menu_items']: #从菜单项里遍历紫菜单项print(' '+ y['text'])# =============================================================================
# #示例:启动无标题记事本
# =============================================================================
#app=Application()
#app.start('Notepad.exe')
#app.Notepad.draw_outline(colour='red') #当前dlg周围划线,单独输出可直观显示
#app.Notepad.print_control_identifiers(depth=100,filename='a.txt') #当前dlg中所有控件输出:类名、标题名、位置等
#app.Notepad.type_keys('SKJAKJFSDF')
#
#dlg=app['无标题 - 记事本']
#showMenus(dlg) #自建函数输出窗口所有菜单及子菜单
#
#dlg.WindowText() #返回对话框的标题文本
#
#
#app['无标题 - 记事本'].menu_select('编辑->替换(&R)...') #当前dlg菜单检索
##app['替换'].print_control_identifiers() #当前dlg所有控件输出
#app['替换']['取消'].click() #app[dlg][ctl].click() dlg和ctl都可以通过类、标题、句柄、等来绑定
#
#app['无标题 - 记事本'].Edit.type_keys('东风吹,战鼓擂',with_spaces=True) #如果没有with_spaces 参数,则不会输入空格。请参阅SendKeys的文档,了解此方法,因为它是SendKeys的一个薄包装器。
#
#app['无标题 - 记事本'].menu_select('文件->退出') #菜单检索
#app['记事本']['不保存'].close_click() #使用close_click()而不是click()更安全,因为close_click()会等待一段时间以给窗口时间关闭对话框。# =============================================================================
# #示例:启动Tdxw2软件客户端
# =============================================================================
app=Application(backend='win32')
app.connect(path='D:\\02通达信金融终端软件客户端v7.46\\TdxW.exe')dlg=app.window(title_re='通达信金融终端V7.46',class_name='TdxW_MainFrame_Class')
dlg.print_control_identifiers(filename='输出控件文件夹\\dlg_T.txt')
dlg.draw_outline() #周围划线,单独输出可直观显示dlg_CD=dlg['#32770']
dlg_CD.print_control_identifiers(filename='输出控件文件夹\\dlg_CD.txt')
dlg_CD.draw_outline(colour='red')#下面开始官方文档内容:
# =============================================================================
# #新开程序 或 链接已在运行程序
# =============================================================================#新开程序
#appT2=Application().start('D:\\02通达信金融终端软件客户端v7.46\\TdxW.exe')#链接已在运行程序
#参数path=''
#参数press=
#参数handle=
#参数组合 title_re='',class_name=''#appT2=Application().connect(path='D:\\02通达信金融终端软件客户端v7.46\\TdxW.exe')# =============================================================================
# #指定对话框
# =============================================================================#符号点. 等同于 列表[]
#dig=app.top_window() #返回程序顶端窗口
#dig=app.window(title_re='.*记事本.*',class_name='')
#print(app.windows()) #返回所有对话框# =============================================================================
# #指定控件
# =============================================================================#app.dlg.control
#app['dlg']['control']#当前会话中所有控件输出
#可选参数depth= 指定输出深度
#可选参数filename='' 指定输出目录
#app[dlg].print_control_identifiers(depth=,filename='')# =============================================================================
# #隐式等待
# =============================================================================
#wait方法#dlg.wait(“exists ready”, timeout = 5, retry_interval = 3)
#dlg.wait(wait_for, timeout = None, retry_interval = None)
#参数wait_for可传入五种参数, 可以组合传参,但要以空格隔开:
#exists: 窗口变成有效的句柄
#visible: 窗口可见,没有隐藏
#enabled: 窗口没有disable
#ready: visible + enable
#active: active
#参数timeout:设置超时时间,若在n秒内没有等到窗口在wait_for中传入的几种状态,则会抛出TimeoutError。
#参数retry_interval:超时后,间隔n秒再次重试。#wait_not方法#dlg.wait_not(wait_for_not,timeout = None,retry_interval = None)
#等待窗口不处于某种状态时。参数与wait传参一致。# =============================================================================
# #通用操作
# =============================================================================#dlg.popup_window() #如果现实,则返回弹出窗口,如果没有弹出窗口则返回self#dlg.WindowText() #返回对话框的标题文本
#print(dlg.menu()) #返回对话框的菜单
#dlg.menu_items() #返回对话框的所有菜单项及紫菜单项#dlg.hide_from_taskbar() #从Windows任务栏隐藏对话框
#dlg.is_in_taskbar() #是否显示在Windows任务栏中
#dlg.show_in_taskbar() #在Windows任务栏中显示该对话框#dlg.get_show_state() #获取显示状态 1恢复状态/2最小化/3最大化
#dlg.is_maximized() #是否最大化
#dlg.is_minimized() #是否最小化
#dlg.is_normal() #是否正常(没有最小化也没有最大化)
#
#dlg.maximize() #最大化
#dlg.minimize() #最小化
#dlg.restore() #窗口恢复之前状态
#
##dlg.menu() #返回控件的菜单
##dlg.menu_item(path='') #返回参数path指定的菜单项
##dlg.menu_items() #返回对话框的菜单项,如果没有菜单项则返回空列表
##dlg.menu_select() #查找路径指定的菜单项 参数 ——>
#
#dlg.move_mouse(coords=(0,0)) #移动鼠标
#dlg.move_window(x=500,y=500) #移动窗口到位置
#dlg.minimize()
#
#dlg.popup_window() #如果现实,则返回弹出窗口,如果没有弹出窗口则返回self
##dlg.force_close() #强制关闭对话框并返回结果
#dlg.close() #关闭对话框
#dlg.close_alt_f4() #按alt+F4关闭窗口
#dlg.close_click() #执行应该使窗口消失的单击操作,与click()的唯一区别是点击操作之前和之后有额外的延迟。# =============================================================================
# #系统托盘
# =============================================================================
#
#from pywinauto.application import Application
#
#appS=Application().connect(path='explorer')
#systray_icons= appS.ShellTrayWnd
#systray_icons.draw_outline()
#systray_icons.print_control_identifiers(filename='systray.txt')
#
#
##systray_icons['Start'].draw_outline(colour='blue') #开始
#
#systray_icons['MSTaskSwWClass'].draw_outline(colour='blue') #正在运行程序
#systray_icons['TrayNotifyWnd '].draw_outline(colour='red') #任务栏右下角区域
#systray_icons['StartButton'].draw_outline(colour='blue') #右下角上拉键
#systray_icons['TrayClockWClass'].draw_outline(colour='red') #时钟# =============================================================================
# #鼠标控制
# =============================================================================#pywinauto.mouse.click(button='left',coords=(0,0)) #单击指定坐标
#pywinauto.mouse.double_click(button='left',coords=(0,0)) #双击指定坐标
#pywinauto.mouse.move(coords=(0,0)) #鼠标移动到指定坐标
#
#pywinauto.mouse.press(button='left',coords=(0,0)) #指定位置按下鼠标左键
#pywinauto.mouse.release(button='left',coords=(100,200)) #指定位置释放鼠标左键
#
#pywinauto.mouse.right_click(coords=(0,0)) #右键点击指定位置
#
#pywinauto.mouse.scroll(coords=(500,500),wheel_dist=-100) #中键滚动到指定坐标
#pywinauto.mouse.wheel_click(coords=(0, 0)) #中键单击指定坐标# =============================================================================
# #鼠标点击
# =============================================================================
#click() #点击Button控件
#check_by_click() #通过click()方法勾选checkbox
#uncheck_by_click() #通过click()方法取消勾选checkbox
#get_check_state() #返回checkbox的勾选状态(0没勾选,1勾选,2不定)
#is_checked #(勾选返回true,为勾选返回false,不定返回None)
#check() #勾选checkbox
#uncheck() #不勾选checkbox
#invoke() #点击(uia mode)
#toggle() #勾选checkbox(uia mode)# =============================================================================
# #键盘操作
# =============================================================================
#type_keys('')'''
SHIFT +
CTRL ^
ALT %
空格键 {SPACE}BACKSPACE {BACKSPACE}、{BS} or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
+ {ADD}
- {SUBTRACT}
* {MULTIPLY}
/ {DIVIDE}
F1 {F1}
F2 {F2}
F3 {F3}
.....
F15 {F15}
F16 {F16}
'''
pywinauto模块 窗口自动化操作相关相关推荐
- Python的pyautogui模块,自动化操作的强大工具
在Python当中,不仅代码简单,而且有着非常丰富的模块,pyautogui就可以称之为自动化操作的"神器". 为什么说是神器呢?百度的搜索的解释如下: PyAutoGUI是一个纯 ...
- pyautogui自动化操作脚本
之前针对加密视频播放编写了一个自动答题的脚本(使用易语言 大漠插件所编写的) 还有商户自动话术回复的(也是易语言+大漠插件) 还有使用autojs所编写的一个针对安卓端钉钉的自动签到 还有一个某宝领喵 ...
- Python学习(六) 史上最全Pywinauto模块自动化操作软件
1本文设计内容较多,但是都不难,都是干货.耐心看下文. 工作中资源更新需要重复行操作软件,这不符合程序的一贯作风,所以使用pywinauto 这个python 模块,实现自动化操作软件.只需鼠标一点, ...
- python实现自动按键_Python使用pyautogui模块实现自动化鼠标和键盘操作示例
本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作.分享给大家供大家参考,具体如下: 一.pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模 ...
- Pywinauto自动化操作PC微信提取好友微信号
声明:https://zhuanlan.zhihu.com/p/29944988#! /usr/bin/env python #coding=utf-8 #pywinauto自动化操作微信号 #by ...
- 深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作
深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作 一·scp命令使用方法:参考链接 二·rsync命令使用方法:参考链接 三·xsy ...
- 自动化运维---ansible常用模块之文件操作(findreplace模块)
自动化运维-ansible常用模块之文件操作(find&replace模块) 文章目录 自动化运维---ansible常用模块之文件操作(find&replace模块) 1.find模 ...
- 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)
已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...
- #CSDN21天学习挑战赛#Python入门之pdfplumber模块-自动化操作PDF文件详细教程教(1)
开卷有益!作者Amily1123是初学python的科研"狗",每天大量的工作是跟pdf.word.excel等文件打交道.最希望的事情就是提高工作效率,能够用最少得精力产出最多 ...
最新文章
- 个人笔记------注释代码(神兽)
- c++ socket 结构体
- 框架:初识Spring
- 机器学习导论(张志华):渐近性质
- 机器学习理论梳理2 : KNN K近邻分类模型
- 【C语言进阶深度学习记录】九 C语言中const的详细分析
- zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)
- vue 属性 computed
- 宋宝华:当Linux内核遭遇鲨鱼—kernelshark
- 通过高德地图获取 经纬度 以及地理位置等
- 【2023年中国法定节假日的订阅链接】
- 磁盘格式怎么转换?Tuxera NTFS对磁盘进行不同格式转换教程
- golang 自定义日志
- iOS 在TabBarController视图切换的时候添加动画
- Barrier与多线程
- Linux 块驱动之一
- 关于“未能加载文件或程序集”的解决方法
- Python学习手册(第4版) pdf
- Web3是未来还是大忽悠?
- 计算机培训微课设计与实现,微课设计与制作