乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python AutoIt實現(xiàn)界面工具開發(fā)

       dinghj 2019-04-15

      前言

        不同于Linux服務(wù)器上的命令行操作,在windows系統(tǒng)上用戶的使用習慣還是傾向于使用有界面的工具。如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作習慣,往往不容易推廣使用。由于需要維護測試部工具的原因,其中有一個工具是用AutoIt語言實現(xiàn)的,利用幾天時間把工具源碼學習了一下。發(fā)現(xiàn)使用AutoIt可以快速開發(fā)工具界面。當然它也能各種邏輯處理,而且也很方便。

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

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

      AutoIt簡述

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

        下面內(nèi)容來自官網(wǎng)的介紹,如下:

      AutoIt工具安裝

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

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

       AutoIt界面繪制和對齊

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

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

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

      對齊方式的描述都有小圖形,挺形象的,應(yīng)該都知道每個對齊方式的作用了??梢宰约豪瓗讉€控件下來,每個嘗試一下看看效果。最終就能獲取你想要的了。

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

      復制代碼
      #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 EndSwitchWEnd
      復制代碼

      AutoIt獲取界面輸入和調(diào)用外部命令

        實現(xiàn)AutoIt界面,最主要是利用界面讓用戶輸入相關(guān)的參數(shù)。那么程序中如何獲取用戶的輸入?主要是通過GUICtrlRead()函數(shù),如需要獲取上述界面中用戶輸入的路徑、舊字符串、新字符串。代碼如下:

      復制代碼
      $file_path = GUICtrlRead($Input1)$old_str = GUICtrlRead($Input2)$new_str = GUICtrlRead($Input3)
      復制代碼

        獲取到用戶的輸入?yún)?shù)后就可以將參數(shù)傳遞給Python實現(xiàn)的業(yè)務(wù)邏輯了。AutoIt可以利用Run()函數(shù)調(diào)用外部命令。如Run('notepad.exe', '', @SW_SHOWMAXIMIZED)。在使用Run()調(diào)用之前可以利用Pyinstaller工具將Python業(yè)務(wù)處理邏輯.py文件編譯成可直接運行的.exe文件(編譯方法可以參考使用Pyinstaller轉(zhuǎn)換.py文件為.exe可執(zhí)行程序)。這樣就可以直接使用Run()函數(shù)調(diào)用實現(xiàn)了。

      調(diào)用的外部程序獲取參數(shù)的2種常見方式

        1、界面輸入?yún)?shù)少(0~3個)。如果界面輸入?yún)?shù)很少,可以直接通過傳參的方式完,注意觀察下述調(diào)用AutoIt變量的方法。參考代碼如下:

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

        2、界面輸入?yún)?shù)多(比如大于3個)

        建議可以采用配置文件方式寫入到.ini文件中。然后Python通過讀取配置文件方式獲取輸入。AutoIt將參數(shù)寫入.ini文件有現(xiàn)成的函數(shù),非常方便。IniWrite()函數(shù)原型如下:

      復制代碼
      IniWrite ( 'filename', 'section', 'key', 'value' )
      復制代碼

      獲取外部程序輸出結(jié)果的2種方式

      1、通過StdoutRead()函數(shù)獲取。這種方式獲取輸出不穩(wěn)定,可能是我沒掌握到關(guān)鍵點。示例如下:

      復制代碼
      $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 & $lineWEndConsoleWrite($strResult)
      復制代碼

      2、調(diào)用ipconfig命令并將結(jié)果輸出到文件,AutoIT通過讀取文件內(nèi)容獲取。示例如下

      復制代碼
      $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 WendEndIfFileClose($fp)ConsoleWrite($strResult)
      復制代碼

      寫在最后

        本文為界面開發(fā)實現(xiàn)有困難的(如本人)同學提供一種可以快速實現(xiàn)界面開發(fā)的思路。針對AutoIt語言個人也是現(xiàn)學現(xiàn)用,沒有太多的深入研究。另外AutoIt開發(fā)工具小巧、安裝方便、且AutoIt幫助手冊中有所有函數(shù)定義和使用的非常詳細介紹,有興趣的同學可以了解一下。上手很容易。最后針對AutoIt+Python實現(xiàn)界面工具開發(fā)的總結(jié)步驟主要為:

        1、利用ScitTe編輯器中的Koda FormDesigner組件拖拽、對齊快速實現(xiàn)界面原型開發(fā)。并將界面原型反向生成獲取源碼。

        2、利用Python實現(xiàn)核心業(yè)務(wù)邏輯處理,通過pyinstaller將.py文件轉(zhuǎn)換成可直接運行.exe文件。

        3、利用GUICtrlRead()函數(shù)獲取用戶界面輸入,利用Run()函數(shù)調(diào)用.exe程序并將參數(shù)傳遞進去,實現(xiàn)業(yè)務(wù)處理。

        4、工具開發(fā)完成。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多