一、常见的windows程序界面的框架
MFC:(Microsoft Foundation Classes, 微软基础类库)作用在Windows平台做GUI开发使用。
MFC快速入门:https://www.jianshu.com/p/0324359b567c
WindowsForms: 是微软的.NET 开发框架的图形用户界面 的一部分。微软在.Net 3.0中发行了WPF作为WinForms的替代版,很多时候仍需要和WinForms互操作。
WPF: (Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
Metro: 是微软在Windows Phone 7中正式引入的一种界面设计语言,Windows 8,Windows 8.1、Windows 10以及Office 15、Office 16中也采用了Metro设计
Qt: 是一个跨平台的C++图形用户界面应用程序框架。它也是目前流行的Linux桌面环境KDE的基础。Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持
支持的平台
- Windows – XP、Vista、Win7、Win8、Win2008、Win10
- Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、 FreeBSD、BSD/OS、和其他很多X11平台
- Macintosh – Mac OS X
- Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE
Qt 优点:跨平台,(只要装了Qt),无论在win,linux,android,ios都可以运行。
二、使用开源框架UIAutomation
开源框架UIAutomation,支持MFC, Windows Form, WPF, Modern UI(Metro UI), Qt(Partly), Firefox(version<=56 or >=60), Chrome and Electron等。
作者:yinkaisheng 原文:http://www.cnblogs.com/Yinkaisheng/p/3444132.html
github地址:https://github.com/yinkaisheng/Python-UIAutomation-for-Windows
三、UIAutomation常用的方法
1、WindowContrl(searchDepth=None,ClassName=None,SubName=None)
(1) 查找窗口中的程序,如果有中文则需用Unicode;
(2) 可用window.Exists(maxSearchSeconds)来判断此窗口是否存在;
2、EditControl(searchFromControl=None)
(1) 查找文本编辑框位置,找到后可用DoubleClick()来改变电脑的focus;
(2) edit.SetValue(“string”) 输入值;
3、Win32API.SendKeys(“string”)
如果已在文本编辑框位置,则可用此方法来输入值,{Ctrl}为ctrl键,其他类似;{@ 8}格式可输入8个@,对于数字也可实现此功能,但对于字母不能;
4、MenuItemControl(searchFromControl=None,Name=None)
查找菜单按钮;
5、ComboBoxControl(searchFromControl=None,AutomationI=None)
查找下拉框,然后在此基础上用Select(“name”)方法来选择需要的选项;
6、BottonControl(searchFromControl=None,Name=None,SubName=None)
查找按钮;
7、automation.FindControl
( WindowControl对象,lambda c:(isinstance(c, automation.EditControl) or isinstance(c, automation.ComboBoxControl)) and c.Name == 'Enter your search term' )
按条件搜索handle
四、UIAutomation常用定位属性
一般定位的属性有:ClassName、Name、ProcessId、AutomationId
这些属性的获得考虑使用:InspectX64
(在上面开源项目中) Python-UIAutomation-for-Windows/inspect/InspectX64.exe可以获取
下图1为获取Name的展示:
五、UIAutomation常用句柄操作
- Click() 点击;
- DoubleClick 双击;
- RighClik() 右键点击;
- SendKeys() 发送字符;
- SetValue() 传值,一般对EditControl用;
- Select() 下拉项选择,对ComboBoxControl用;