Python AutoIt實現介面工具開發

2021-09-23 08:09:01 字數 3090 閱讀 4360

前言

不同於linux伺服器上的命令列操作,在windows系統上使用者的使用習慣還是傾向於使用有介面的工具。如果工具是命令列互動操作的方式,可能是有悖於在windows上使用的操作習慣,往往不容易推廣使用。由於需要維護測試部工具的原因,其中有乙個工具是用autoit語言實現的,利用幾天時間把工具原始碼學習了一下。發現使用autoit可以快速開發工具介面。當然它也能各種邏輯處理,而且也很方便。

但是考慮精力和學習成本,我主要使用autoit的方式還是利用它來實現介面開發以及學習基本的語法完成簡單的邏輯處理,然後使用python實現核心的業務處理邏輯。通過autoit呼叫函式執行python編譯後的可執行檔案方式來完成工具需求的開發。

我想,本文最適合的讀者是跟我一樣有介面開發困難障礙的同學,又不想花太多時間去學其他介面實現開發的同學。

autoit簡述

autoit乙個使用類似basic指令碼語言的免費軟體,語言簡單、開發工具安裝方便,幫助手冊內容豐富。它設計用於windows gui(圖形使用者介面)中進行自動化操作。autoit官網: 。

下面內容來自官網的介紹,如下:

autoit工具安裝

安裝完成後,開啟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種常見方式

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、工具開發完成。

SpringBoot實現post get介面

springboot簡介 spring boot 是在spring spring4.0 版本 基礎之上產生的,其中 boot 的意思就是 引導 意在簡化開發模式,使開發者能夠快速的開發出基於spring 的應用。spring boot 含有乙個內嵌的tomcat web容器。我們開發的web 應用不...

python flask 如何實現http介面

為什麼要做這個?mock 第三方服務時,需要使用,另外包括自身開發,有時也會用到python 檢測是否有資料 return fail params request.data.decode utf 8 獲取到post過來的資料,因為我這裡傳過來的資料需要轉換一下編碼。根據晶具體情況而定 prams j...

一介面多實現「事件分發」實現

public class voicestateclient return mclient 定義乙個介面 public inte ce voicestatelistener public static setmstatelisteners new hashset 每次呼叫該介面的時候,遍歷分發事件,為...