欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python+AutoIt實現界面工具開發過程詳解

系統 2105 0

前言

不同于Linux服務器上的命令行操作,在windows系統上用戶的使用習慣還是傾向于使用有界面的工具。如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作習慣,往往不容易推廣使用。

由于需要維護測試部工具的原因,其中有一個工具是用AutoIt語言實現的,利用幾天時間把工具源碼學習了一下。發現使用AutoIt可以快速開發工具界面。當然它也能各種邏輯處理,而且也很方便。

但是考慮精力和學習成本,我主要使用AutoIt的方式還是利用它來實現界面開發以及學習基本的語法完成簡單的邏輯處理,然后使用Python實現核心的業務處理邏輯。通過AutoIt調用函數執行Python編譯后的可執行文件方式來完成工具需求的開發。

我想,本文最適合的讀者是跟我一樣有界面開發困難障礙的同學,又不想花太多時間去學其他界面實現開發的同學。這種方法有點投機取巧,不過是我恰好其他工具使用到了AutoIT,所以結合了使用。總的來說還是建議初學者學習使用Python界面工具開發,如PyQt。因為學習都是要精力和成本的。本文僅是提供一種思路。

AutoIt簡述

AutoIt一個使用類似BASIC腳本語言的免費軟件,語言簡單、開發工具安裝方便,幫助手冊內容豐富。它設計用于Windows GUI(圖形用戶界面)中進行自動化操作。AutoIt官網: https://www.autoitscript.com/site/autoit? 。

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

Python+AutoIt實現界面工具開發過程詳解_第1張圖片

AutoIt工具安裝

Auto工具從官網下載:https://www.autoitscript.com/site/autoit/downloads/。這里要注意的一點是要安裝全量的AutoIt編輯器。把如下兩個軟件下載,安裝步驟按照提示默認操作就可以完成。如果只安裝第1個,就會缺少本文需要使用的Koda(FormDesigner)菜單欄。

Python+AutoIt實現界面工具開發過程詳解_第2張圖片

安裝完成后,打開SciTE編輯器。檢查是否包含Koda(FormDesigner)。路徑:菜單欄Tools -> Koda(FormDesigner)。這就是AutoIt界面畫圖的工具,通過拖拽工具欄中的組件到主界面就可以實現。

Python+AutoIt實現界面工具開發過程詳解_第3張圖片

AutoIt界面繪制和對齊

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

Python+AutoIt實現界面工具開發過程詳解_第4張圖片

將需要的界面控件拖拽到主界面窗口后,就需要將按照實際需要對齊窗口。如下主界面有3個Lable標簽和3個Input輸入框。

Python+AutoIt實現界面工具開發過程詳解_第5張圖片

對齊方法為按住Shift鍵同時選中需要對齊操作的按鈕,主要對齊方式如下):

Python+AutoIt實現界面工具開發過程詳解_第6張圖片

對齊方式的描述都有小圖形,挺形象的,應該都知道每個對齊方式的作用了。可以自己拉幾個控件下來,每個嘗試一下看看效果。最終就能獲取你想要的了。

當控件對齊完成之后。可以執行Tools -> Generate Form Code獲取代碼用于后續的編輯了。如下

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 看全色黄大色黄大片色黄看的 | 91视频无限看 | 国产va免费精品观看精品 | 毛片无码免费无码播放 | 亚洲精品自产拍在线观看app | 亚洲国产日韩在线一区 | 午夜不卡电影 | 激情做a全过程片A | av免费在线观看国产 | 成人日韩 | 欧美成人精品一区二区男人看 | 欧美1区 | 国产视频三区 | 日韩久久精品 | 成人午夜精品一区二区三区 | 日韩在线视频一区 | 三级网站免费 | 亚洲精品一区二区三区在线看 | 国产一毛片| av影音 | 精品a在线观看 | 91久久久久久久一区二区 | 免费九九视频 | 免费黄色欧美视频 | 亚洲第一视频网站 | www成人国产在线观看网站 | 麻豆视频秘密入口 | 色四虎| www.亚洲黄色| 日本视频网 | 五月婷婷丁香六月 | 久久9966e这里只有精品 | 免费又色又爽1000禁片 | 久久精品视 | 五月婷婷综合在线视频 | 国产精品香蕉 | 久久中文字幕一区二区 | 日产国产欧美视频一区精品 | 欧美福利 | 狠狠操夜夜爱 | 女猛烈无遮挡性视频免费 |