您好,登錄后才能下訂單哦!
怎么在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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。