Python+AutoIt实现界面工具开发

2023-12-29 04:32

本文主要是介绍Python+AutoIt实现界面工具开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

 不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具。如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作习惯,往往不容易推广使用。由于需要维护测试部工具的原因,其中有一个工具是用AutoIt语言实现的,利用几天时间把工具源码学习了一下。发现使用AutoIt可以快速开发工具界面。当然它也能各种逻辑处理,而且也很方便。

  但是考虑精力和学习成本,我主要使用AutoIt的方式还是利用它来实现界面开发以及学习基本的语法完成简单的逻辑处理,然后使用Python实现核心的业务处理逻辑。通过AutoIt调用函数执行Python编译后的可执行文件方式来完成工具需求的开发。

  我想,本文最适合的读者是跟我一样有界面开发困难障碍的同学,又不想花太多时间去学其他界面实现开发的同学。

AutoIt简述

 AutoIt一个使用类似BASIC脚本语言的免费软件,语言简单、开发工具安装方便,帮助手册内容丰富。它设计用于Windows GUI(图形用户界面)中进行自动化操作。AutoIt官网:https://www.autoitscript.com/site/autoit/ 。

  下面内容来自官网的介绍,如下:

AutoIt工具安装

Auto工具从官网下载:https://www.autoitscript.com/site/autoit/downloads/。这里要注意的一点是要安装全量的AutoIt编辑器。把如下两个软件下载,安装步骤按照提示默认操作就可以完成。如果只安装第1个,就会缺少本文需要使用的Koda(FormDesigner)菜单栏。

安装完成后,打开SciTE编辑器。检查是否包含Koda(FormDesigner)。路径:菜单栏Tools -> Koda(FormDesigner)。这就是AutoIt界面画图的工具,通过拖拽工具栏中的组件到主界面就可以实现。

 AutoIt界面绘制和对齐

 AutoIt界面实现就是通过Koda(FormDesigner)界面中windows控件拖拽的主窗口中实现。Standard中有常用的windows窗体控件,包括Label、input、Edit、Button、CheckBox、RadioButton、ListBox、ComboBox、Contex Menu

将需要的界面控件拖拽到主界面窗口后,就需要将按照实际需要对齐窗口。如下主界面有3个Lable标签和3个Input输入框。

对齐方法为按住Shift键同时选中需要对齐操作的按钮,主要对齐方式如下):

对齐方式的描述都有小图形,挺形象的,应该都知道每个对齐方式的作用了。可以自己拉几个控件下来,每个尝试一下看看效果。最终就能获取你想要的了。

  当控件对齐完成之后。可以执行Tools ->  Generate Form Code获取代码用于后续的编辑了。如下

 

AutoIt获取界面输入和调用外部命令

 实现AutoIt界面,最主要是利用界面让用户输入相关的参数。那么程序中如何获取用户的输入?主要是通过GUICtrlRead()函数,如需要获取上述界面中用户输入的路径、旧字符串、新字符串。代码如下:

 

获取到用户的输入参数后就可以将参数传递给Python实现的业务逻辑了。AutoIt可以利用Run()函数调用外部命令。如Run("notepad.exe", "", @SW_SHOWMAXIMIZED)。在使用Run()调用之前可以利用Pyinstaller工具将Python业务处理逻辑.py文件编译成可直接运行的.exe文件(编译方法可以参考使用Pyinstaller转换.py文件为.exe可执行程序)。这样就可以直接使用Run()函数调用实现了。

调用的外部程序获取参数的2种常见方式

 1、界面输入参数少(0~3个)。如果界面输入参数很少,可以直接通过传参的方式完,注意观察下述调用AutoIt变量的方法。参考代码如下:

Run(@ComSpec &" /c "&"D:\temp\dist\process.exe "&'"'&$old_str&'"'&" "&'"'&$new_str&'"'&" "&'"'&$file_path&'"',"")

  2、界面输入参数多(比如大于3个)

建议可以采用配置文件方式写入到.ini文件中。然后Python通过读取配置文件方式获取输入。AutoIt将参数写入.ini文件有现成的函数,非常方便。IniWrite()函数原型如下:

IniWrite ("filename","section","key","value")

获取外部程序输出结果的2种方式

1、通过StdoutRead()函数获取。这种方式获取输出不稳定,可能是我没掌握到关键点。示例如下:

 

2、调用ipconfig命令并将结果输出到文件,AutoIT通过读取文件内容获取。示例如下

 

写在最后

  本文为界面开发实现有困难的(如本人)同学提供一种可以快速实现界面开发的思路。针对AutoIt语言个人也是现学现用,没有太多的深入研究。另外AutoIt开发工具小巧、安装方便、且AutoIt帮助手册中有所有函数定义和使用的非常详细介绍,有兴趣的同学可以了解一下。上手很容易。最后针对AutoIt+Python实现界面工具开发的总结步骤主要为:

  1、利用ScitTe编辑器中的Koda FormDesigner组件拖拽、对齐快速实现界面原型开发。并将界面原型反向生成获取源码。

  2、利用Python实现核心业务逻辑处理,通过pyinstaller将.py文件转换成可直接运行.exe文件。

3、利用GUICtrlRead()函数获取用户界面输入,利用Run()函数调用.exe程序并将参数传递进去,实现业务处理。

  4、工具开发完成。

这篇关于Python+AutoIt实现界面工具开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548325

相关文章

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll