您好,登录后才能下订单哦!
怎么在Python中利用AutoIt开发界面工具?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。
AutoIt工具安装
Auto工具从官网下载,这里要注意的一点是要安装全量的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获取代码用于后续的编辑了。如下
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section $Form1_1 = GUICreate("文件名替换工具", 446, 198, 218, 133) $Label1 = GUICtrlCreateLabel("路径", 40, 32, 28, 17) $Label2 = GUICtrlCreateLabel("旧字符串", 40, 80, 52, 17) $Label3 = GUICtrlCreateLabel("新字符串", 40, 128, 52, 17) $Input1 = GUICtrlCreateInput("", 120, 32, 257, 21) $Input2 = GUICtrlCreateInput("", 120, 80, 257, 21) $Input3 = GUICtrlCreateInput("", 120, 128, 257, 21) $Button1 = GUICtrlCreateButton("确定", 112, 160, 57, 25) $Button2 = GUICtrlCreateButton("退出", 224, 160, 65, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Label1 Case $Label2 Case $Label3 EndSwitch WEnd
AutoIt获取界面输入和调用外部命令
实现AutoIt界面,最主要是利用界面让用户输入相关的参数。那么程序中如何获取用户的输入?主要是通过GUICtrlRead()函数,如需要获取上述界面中用户输入的路径、旧字符串、新字符串。代码如下:
$file_path = GUICtrlRead($Input1) $old_str = GUICtrlRead($Input2) $new_str = GUICtrlRead($Input3)
获取到用户的输入参数后就可以将参数传递给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()函数获取。这种方式获取输出不稳定,可能是我没掌握到关键点。示例如下:
$op = Run(@ComSpec & " /c " & "D:\temp\dist\process.exe " & '"'&$old_str&'"' & " " & '"'&$new_str&'"' & " " & '"'&$file_path&'"' ,"",@SW_HIDE,$STDOUT_CHILD + $STDERR_CHILD) $strResult = "" while 1 $line = StdoutRead($op) if @error Then ExitLoop $strResult = $strResult & $line WEnd ConsoleWrite($strResult)
2、调用ipconfig命令并将结果输出到文件,AutoIT通过读取文件内容获取。示例如下
$strResult = "" Local $ipconfig_result_file = @ScriptDir & "\ipconfig_result_file.txt" ConsoleWrite(@ComSpec & " /c " & "ipconfig > " & '"'&$ipconfig_result_file&'"') RunWait(@ComSpec & " /c " & "ipconfig > " & '"'&$ipconfig_result_file&'"', "",@SW_HIDE) $fp = FileOpen($ipconfig_result_file, 0) if $fp <> -1 Then While 1 $line= FileReadLine($fp) If @error = -1 Then ExitLoop $strResult = $strResult & $line & @CR Wend EndIf FileClose($fp) ConsoleWrite($strResult)
写在最后
本文为界面开发实现有困难的(如本人)同学提供一种可以快速实现界面开发的思路。针对AutoIt语言个人也是现学现用,没有太多的深入研究。另外AutoIt开发工具小巧、安装方便、且AutoIt帮助手册中有所有函数定义和使用的非常详细介绍,有兴趣的同学可以了解一下。上手很容易。最后针对AutoIt+Python实现界面工具开发的总结步骤主要为:
1、利用ScitTe编辑器中的Koda FormDesigner组件拖拽、对齐快速实现界面原型开发。并将界面原型反向生成获取源码。
2、利用Python实现核心业务逻辑处理,通过pyinstaller将.py文件转换成可直接运行.exe文件。
3、利用GUICtrlRead()函数获取用户界面输入,利用Run()函数调用.exe程序并将参数传递进去,实现业务处理。
4、工具开发完成。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。