一种在windows平台下实现自动操作应用的方法,附带源码地址及使用方法
功能
实现Windows GUI应用启停及其他复杂操作的自动化功能
原理
通过配置xml文件的方式定义一系列动作、步骤,此工具会读取XML配置文件并解析获取配置信息,然后调用window API,以此实现捕获窗体、模拟鼠标移动、模拟鼠标点击、模拟输入等操作,从而实现GUI应用的启停及其他复杂的GUI操作。
使用步骤
1)安装python/pywin32
Ø python
安装python解析器,比较常用的版本是:2.7
Ø pywin32
在工具包tools\pywin32\目录下提供了pywin32 32Bit/64Bit安装程序,可以选择相应的安装包来安装即可。如果提供的安装包都不兼容,则可访问以下网址找对应版本的安装包安装:https://sourceforge.net/projects/pywin32/files/pywin32/
2)配置XML文件
XML配置文件,记录了GUI应用启停等复杂操作过程中涉及到的必要信息,通过配置这些必要信息,告诉本工具具体做什么。模拟对GUI应用实现复杂的操作,通常由一系列的原子操作构成,这里说的原子操作,在本工具中被定义为“步骤”。本工具实现的“步骤”及每个“步骤”所需要的数据各不相同(子节点)。每个“步骤”的定义中,action属性必填,func属性可选,action属性告诉本工具具体的操作,func属性告诉步骤的定义者具体做什么。具体来说:
Ø Action=“run”,运行,通常用来启动GUI应用,例如启动notepad,其中params参数可选
Ø Action=“getwin”,捕获窗体,其中titile是窗体标题,clsname是窗体的类名,id是该窗体标识,title/clsname只需要填一个即可,id必填
Ø Action=“moveto”,移动鼠标,ref_win_id/point必须定义,ref_win_id指明参考的窗体是哪个,point指明鼠标移动到的相对与窗体的坐标
Ø Action=“lclick”,鼠标左键单击
Ø Action=“settext”,输入文本,text属性必填,指明输入的内容
Ø Action=“btnclick”,鼠标左键单击按钮,title/ref_win_id必须定义,其中title指明按钮上的文字,ref_win_id指明按钮位于哪个窗体之上
Ø Action=“command”,执行命令行命令,cmdline必须定义,指明具体需要执行的命令行
PS:配置文件必须保存在etc目录下
工具使用方法
1)帮助说明
>python win_app_ops.py -h
Usage: win_app_ops.py [options]
Options:
-h,--help show this help messageand exit
-cCONFFILE, --conffile=CONFFILE
configure file
-aACTION, --action=ACTION
action: such asstart/stop which action define in
conffile
-d,--debug if debug, default isfalse
-c参数,指定要使用的xml配置文件,这个xml文件必须位于工具目录的etc目录下;
-a参数,指定的操作,在xml中定义的action
2)用法示例
Ø 启动记事本,输入文字,保存
python win_app_ops.py -a start -c notepad.xml
Ø 关闭记事本
python win_app_ops.py -a stop -c notepad.xml
辅助工具
1)实时鼠标位置
用C#开发的winformGUI应用,用于获取实时鼠标坐标以及偏移量,其中参考鼠标坐标可以通过Ctrl+G快捷键获取,通过Ctrl+R快捷键重置。在模拟鼠标移动时需要用到。
2)Spy++
微软提供获取窗体标题名及类名的工具,在模拟捕获窗体时需要用到。
源码地址: