打开应用使用到win32api

import win32con
import win32gui
import time
from time import sleep
import win32api
import win32com.client
win32api.ShellExecute(1, 'open', '%s'%app_path, '', '', win32con.SW_SHOW)

首先获取应用的句柄

win32gui.FindWindow(None, "Main")  #类名,标题
# 可以通过再次判断是否存在该句柄
while not MainWin: # 强制获取句柄,如无意外的话,可以添加次数控制,或时间控制MainWin = win32gui.FindWindow(None, "Main")  # 类名,标题

获取应用后将应用置顶层

shell = win32com.client.Dispatch("WScript.Shell")# 创建一次即可
#如多次创建后或将致使程序崩溃, Dispatch 用调用到线程。shell.SendKeys('%')# 使用SetForegroundWindow前要进行键入操作
win32gui.SetForegroundWindow(MainWin) # 句柄,置为第一层

遍历子窗口

hwndChildList1 = []
win32gui.EnumChildWindows(hwnd, lambda hwnd, param: param.append(hwnd),  hwndChildList1)
print(hwndChildList1)# 遍历获取子控件及窗口for i in hwndChildList1:print(i)# 控件print(win32gui.GetWindowText(i))# 句柄的名称print(win32gui.GetClassName(i))# 句柄的类名text = win32gui.GetWindowText(i)#

传回按键

# OK_hwnd 找到句柄后 传入按键Enter
win32gui.PostMessage(OK_hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(OK_hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)# 关闭
win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)
win32gui.PostMessage(Main_hwnd, win32con.WM_CLOSE, 0, 0)

使用鼠标点击

def mouse_click(a, b):# x,ytime.sleep(1)win32api.SetCursorPos((a, b))time.sleep(1)win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) # 360会拦截虚拟按键,可以添加信任或者关闭360win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

COMBOBOX与EDIT的选择

# 应用于Combox类的选项
item_index = 1  # 索引值是从0开始的,这里是第3项
win32api.SendMessage(combox_hwnd , win32con.CB_SETCURSEL, item_index, 0)for i in hwndChildList1:print(i)print(win32gui.GetWindowText(i))print(win32gui.GetClassName(i))Clstext = win32gui.GetClassName(i)text = win32gui.GetWindowText(i) if "COMBOBOX" in Clstext:combox_hwnd = iitem_index = 1  # 索引值是从0开始的,这里是第3项win32api.SendMessage(i, win32con.CB_SETCURSEL, item_index, 0)if "EDIT" in Clstext:# EDIT文本框count_edit +=1 if count_edit ==1:win32gui.SendMessage(i,win32con.WM_SETTEXT,None,end_date)else:win32gui.SendMessage(i,win32con.WM_SETTEXT,None,start_date)

过程主要是模拟人手点击的过程,

从打开应用,填入相应信息点击导出再到保存路径,最后保存。

每一步如若涉及到新的窗口需要重新获取句柄,且读取获取句柄下的子控件且子窗口的句柄,获取相应text及class 类在根据相应需求的句柄进行填写,

Python win32gui exe自动化点击捞取报表相关推荐

  1. python编写自动化脚本工具_blog/技巧与工具04-python控制鼠标自动化点击脚本.md at master · tigeroses/blog · GitHub...

    title date tags category 技巧与工具04-python控制鼠标自动化点击脚本 2017-06-24 10:04:28 -0700 python pyautogui tools ...

  2. Python + Selenium + Chrome Driver 自动化点击+评论+刷弹幕(仅供学习)

    Python + Selenium + Chrome Driver 自动化点击 评论 刷弹幕 首先说明,这篇博文仅供学习!仅供学习!仅供学习! 不要拿去做其他事,封号概不负责!!! 突发奇想 首先先说 ...

  3. python+pywinauto+lackey实现pc端exe自动化

    python+pywinauto+lackey实现PC端exe自动化 欢迎阅读 框架介绍 环境搭建 Tim自动化 完整代码 写在最后 欢迎阅读 最近一年多一直在从事PC端exe的测试,也是趁着闲余时间 ...

  4. Excel、Python靠边站,这才是实现报表自动化最快的方法

    最近在跟隔壁部门闲聊的时候,我发现会有这样的情况.他们跟我吐槽说,每天需要花很多时间做报表,但我发现其实他们80%的报表都是机械.重复式的手工操作,最夸张的一张报表需要花两个小时才能更新完.作为报表老 ...

  5. Python自动化办公 | 如何实现报表自动化?

    本篇文章将带你了解报表自动化的流程,并教你用Python实现工作中的一个报表自动化实战,篇幅较长,建议先收藏,文章具体的目录为: 1.Excel的基本组成 2.一份报表自动化的流程 3.报表自动化实战 ...

  6. python模拟鼠标键盘点击,简单自动化动物餐厅

    Python模拟鼠标键盘点击自动化 首先在玩动物餐厅的时候发现他需要连续点击才能完成任务,而这有是一项枯燥而复杂的任务,所以我就想到用python的鼠标模拟来自动完成 Python中模拟键盘和鼠标最著 ...

  7. Python+Selenium 网页自动化 exe 程序编程实现(最全避坑指南)

    前言 在我的日常工作中,经常需要在内网(不连接互联网)的网页版办公系统中进行抓取网页数据.修改表单等大量重复性的操作.我就想是否可以编写出自动化的工具,将这些日常琐碎的操作变得轻松而高效.虽然本人非计 ...

  8. python转换成exe后一闪而过_解决python xx.py文件点击完之后一闪而过的问题

    解决python xx.py文件点击完之后一闪而过的问题 1.问题复现: 有时候我们去点击.py文件 文件里明明有打印信息,却一闪而过,没有任何显示 比如以下内容 #!/usr/local/bin/p ...

  9. python+appium 实现抖音自动化点击滑动

    引言 本篇文章环境配置是又臭又长,想直接看代码的老铁,可以直接跳到后边 所需环境 python 这里我用的是3.6 appium 所需要的环境配置: jdk1.8.0 android sdk 模拟器: ...

最新文章

  1. 六种GAN评估指标的综合评估实验,迈向定量评估GAN的重要一步
  2. 微信支付的坑 返回值 -1
  3. native react 集成微信登录_react native 接入微信登陆(Android)
  4. 数据库事务隔离技术之 Next-Key Locks
  5. [转]UTF-8 GBK UTF8 GB2312 之间的区别和关系
  6. asp.net生命周期
  7. java GZIP压缩和解压
  8. QuickWAP 2.x注册方法和购买注意事项
  9. cat依赖的org.unidal.maven.plugins:plexus-maven-plugin:pom:2.1.2
  10. Raspberry PI 上手记
  11. 计算机编程常见if语句,if编程搞笑语句
  12. HoloView -- Tabular Datasets
  13. QCC512x QCC302x PIO 按键
  14. 怎样找一张图片的原图、出处?最全搜图网站+具体案例分享
  15. snipaste_截图神器
  16. 【转】用深度学习揭示数据的因果关系
  17. 游戏HTML翻翻乐,大班益智游戏翻翻乐教案
  18. python词云分析难吗_【python数据挖掘】使用词云分析来分析豆瓣影评数据
  19. Launching unittests with arguments python -m unittest
  20. Python_静态方法

热门文章

  1. 使用工厂模式加盟店,杜绝偷工减料
  2. hydra(九头蛇)爆破常见端口
  3. 如何调试Android语音功能,Android如何添加语音功能
  4. 学习Python不用愁,五个阶段助你快速拿高薪工作
  5. android bugreport 分析工具
  6. 【高项】- 进度管理论文
  7. 信息系统项目管理师论文-项目整体管理
  8. 警惕!又一疑似东南亚“黑砖窑”人才输送基地
  9. 新入行的网工如何成长
  10. linux+系统的硬盘分区格式化,linux硬盘分区、格式化、挂载超详细步骤