本文实例为大家分享了python自动化工具pywinauto,供大家参考,具体内容如下

一、win环境应用自动化

1.浏览器中下载

2.在cmd下启动:python get-pip.py

3.在cmd中输入python -m pip --version查看安装pip的版本。

4.模块安装:pip3 install pywinauto

5.程序中加载模块:

import time

from pywinautoimport application

二,实例

#encoding=utf-8

#author: walker

#date: 2018-04-26

#summary: 以 pywinauto 调用 ABBYY FineReader 12 Professional 将 pdf 另存为 txt

#sys.version:'3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)]'

import os, sys, time, shutil, ctypes

from pywinauto.application import Application

# 转换单个 pdf 为 txt

# 需要保证输出 txt 文件所在目录是存在的,txt 文件不存在

# 外层许捕获异常

def Pdf2Txt(pdfFile, txtFile):

print('Enter Pdf2Txt ...')

FineReaderPath = r'F:\software\ABBYY FineReader 12\FineReader.exe'

UsualTimeout = 30

cmd = r'"%s" "%s"' % (FineReaderPath, pdfFile)

print('cmd: %s' % cmd)

app = Application(backend="win32").start(cmd)

mainWindow = app.window(class_name=r'FineReader12MainWindowClass')

mainWindow.wait("ready", timeout=UsualTimeout)

statButton = mainWindow.child_window(process=app.process, class_name='Button', title_re=r'\d+ OF \d+ PAGES RECOGNIZED')

statButton.wait("exists visible", timeout=UsualTimeout)

statButton.wait_not("visible", timeout=RecognizeTimeout) # 具体转换可能要很久

mainWindow.dump_tree(filename='mainWindow2.txt')

mainWindow.ToolbarSave.wait('enabled', timeout=RecognizeTimeout).click() # 点击保存按钮

saveDlg = app.window(class_name=r'#32770', title=r'Save document as')

saveDlg.wait("exists visible", timeout=UsualTimeout)

saveDlg.dump_tree(filename='saveDlg.txt')

saveDlg.DUIViewWndClassName.DirectUIHWND.ComboBox2.select('Text (*.txt)') # 设置保存格式

saveDlg.DUIViewWndClassName.DirectUIHWND.FloatNotifySink.ComboBox.Edit.set_text(txtFile) # 设置保存文件名

saveDlg.DUIViewWndClassName.DirectUIHWND.CheckBox.UncheckByClick() # 取消复选框的选中状态(保存后打开)

# saveDlg.type_keys(r'%S') # 保存为 txt(Alt + S)

saveDlg.child_window(title="保存(&S)", class_name="Button").wait('ready', timeout=RecognizeTimeout).click() # 点击保存按钮

print('保存(&S) Button clicked!')

saveDlg.wait_not("exists", timeout=UsualTimeout)

cnt = 0

for _ in range(0, 100):

time.sleep(0.1)

cnt += 1

if os.path.exists(txtFile):

break

app.kill()

saveDlg.wait_not("exists", timeout=UsualTimeout)

mainWindow.wait_not("exists", timeout=20)

print('not exists mainWindow!')

print('current time:%f (%s)' % (time.time(), time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())))

return True

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-08-24

python编写自动化脚本工具_python自动化工具之pywinauto实例详解相关推荐

  1. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

  2. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  3. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  4. python类初始化导入库_Python中optparser库用法实例详解

    本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常 ...

  5. python 字典定义日志用法_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  6. python的网页解析器_Python网页解析器使用实例详解

    python 网页解析器 1.常见的python网页解析工具有:re正则匹配.python自带的html.parser模块.第三方库BeautifulSoup(重点学习)以及lxm库. 2.常见网页解 ...

  7. python中copytree的用法_python复制文件的方法实例详解

    本文实例讲述了python复制文件的方法.分享给大家供大家参考.具体分析如下: 这里涉及Python复制文件在实际操作方案中的实际应用以及Python复制文件 的相关代码说明,希望你会有所收获. Py ...

  8. [转载] python里字典的用法_python中字典(Dictionary)用法实例详解

    参考链接: Python字典dictionary copy方法 本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映 ...

  9. python 自动化办公 案例_python自动化工具之pywinauto实例详解

    python自动化工具之pywinauto实例详解 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python自动化工具之pywinauto实例详解.txt ] (友情提示: ...

  10. python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解

    圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...

最新文章

  1. 两道统计题(两次检测呈阳性,连续抛硬币)
  2. Socket(套字节)编程,客户端 服务器端的发送消息
  3. DNS服务器以及正向名称解析机制
  4. C#之获取mp3文件信息
  5. Linux实现开机自动运行普通用户脚本
  6. linux挂载一个文件夹,linux挂载一个文件夹到另一个文件夹
  7. 【转】用matlab画极坐标图,希望不同的半径点对应不同颜色,应该怎么做?有什么函数
  8. BZOJ 4448 主席树+树链剖分(在线)
  9. python数据建模数据集_Python中的数据集
  10. 摩根士丹利 Morgan Stanley 2008校园招聘已经正式开
  11. Vue 在beaforeCreate时获取data中的数据
  12. 机器学习中的特征工程总结
  13. 5基于matplotlib的python数据可视化——导入Excel数据制作折线图
  14. 实战ASP.NET访问共享文件夹
  15. CSS中相对定位relative
  16. 计算机高级工程师职称评定条件,高级工程师职称评定条件是什么
  17. HDU - 4826(dp)
  18. NXP-MPC5748G车载MCU使用(食用)方法(踩坑)实用指南(骗人教程)(三):MATLAB/SIMULINK生成代码给MPC5848G嵌入式处理器运行
  19. jupyter不是内部或外部命令,也不是可运行程序的解决方案
  20. arduino串口绘图_Arduino IDE开发环境串口绘图仪(Serial Plotter)使用方法简介

热门文章

  1. rsync+lsync实现多服务器多文件夹双向同步
  2. hdu 4970 Killing Monsters(数学题)
  3. 游戏引擎中的通用编程技术
  4. GIS概念的总结(一)什么是GIS
  5. 怎么在百度里通过关键词搜索到自己的网站
  6. c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...
  7. 存在弱口令漏洞_【安全漏洞通告】secnet安网的AC集中管理平台存在弱口令漏洞...
  8. axure删除的页面怎么恢复_微信删除好友怎么找回?快速恢复,真的不难
  9. unity打开一片黑_你的面膜上黑!名!单!了!吗!
  10. linux+下c语言编程项目,精通UNIX下C语言编程与项目实践