autoit pro

来源:互联网 发布:linux安装libssl dev 编辑:程序博客网 时间:2024/06/05 09:25

写了个小程序,用来做压力测试;是加了UI的哦!

#include <GUIConstantsEx.au3>

#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <GuiButton.au3>
#include <GuiEdit.au3>

HotKeySet("{ESC}", "Terminate")
;$iRand = Random(0, 5, 1)
Local $sFileOpenDialog1,$sFileOpenDialog2
Local $FactorToolName
Local $CoordX = 1610, $CoordY = 285     ;Get Point By Line

_Main()
Func _Main()
    Local $msg
    Local $sMessage = "open"
    $hWndWinD = GUICreate("Stress Test",500,200) ; will create a dialog box that when displayed is centered
;    GUISetState(@SW_SHOW) ; will display an empty dialog box
    GUICtrlCreateLabel ( "exe Path", 30, 32,80, 20)
    GUICtrlCreateLabel ( "file Path", 30,60,80,20 )
    GUICtrlCreateLabel ( "factor tool", 30, 90,80, 20)
    GUICtrlCreateLabel ( "operator", 30,120,80,20 )
    $hWndEdit1 = GUICtrlCreateEdit("",150,32,300,20,$ES_AUTOHSCROLL)
    $hWndEdit2 = GUICtrlCreateEdit("",150,60,300,20,$ES_AUTOHSCROLL)
    $hWndCombo1 = GUICtrlCreateCombo("",150,90,200,20,$CBS_DROPDOWNLIST)
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Point By Line")
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Point By Circle")
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Point By Arc")
        _GUICtrlComboBox_AddString($hWndCombo1, "Peak Line")
        _GUICtrlComboBox_AddString($hWndCombo1, "Peak Circle")
        _GUICtrlComboBox_AddString($hWndCombo1, "Peak Arc")
        _GUICtrlComboBox_AddString($hWndCombo1, "Middle Line")
        _GUICtrlComboBox_AddString($hWndCombo1, "MaxMinPoint By Circle")
        _GUICtrlComboBox_AddString($hWndCombo1, "MaxMinPoint By Rect")
        _GUICtrlComboBox_AddString($hWndCombo1, "MaxMinPoint By Arc")
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Line")
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Circle")
        _GUICtrlComboBox_AddString($hWndCombo1, "Get Arc")
        _GUICtrlComboBox_AddString($hWndCombo1, "ExtractContour")

    $hWndCombo2 = GUICtrlCreateCombo("",150,120,200,20)
    $hWndBtn1 = GUICtrlCreateButton ( "...", 455, 32,25, 20)
    $hWndBtn2 = GUICtrlCreateButton ( "...", 455, 60,25, 20)
    $hWndBtnOK = GUICtrlCreateButton ( "OK", 150, 160,25, 20)
    $hWndBtnCancel = GUICtrlCreateButton ( "Cancel", 200,160,60,20 )
    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case $hWndBtn1
                  $sFileOpenDialog1 = FileOpenDialog($sMessage, @WindowsDir & "\", "(*.exe)", $FD_FILEMUSTEXIST)
                  GUICtrlSetData($hWndEdit1,$sFileOpenDialog1,' ')
            Case $hWndBtn2
                  $sFileOpenDialog2 = FileOpenDialog($sMessage, @WindowsDir & "\", "(IMAGE.bmp)",$FD_PATHMUSTEXIST )
                  GUICtrlSetData($hWndEdit2,$sFileOpenDialog2)
            Case $hWndCombo1
                 Local $factorToolindex = _GUICtrlComboBox_GetCurSel($hWndCombo1)
                  _GUICtrlComboBox_GetLBText($hWndCombo1,$factorToolindex,$FactorToolName)
            Case $hWndBtnOK
                  GUIDelete()
                  BeginExecute()
                ; Exit
            Case $hWndBtnCancel
                 ExitLoop
            Case $GUI_EVENT_CLOSE
                 Exit
        EndSwitch
    WEnd
EndFunc

Func BeginExecute()
   ConsoleWrite($FactorToolName& @CRLF)
   Run($sFileOpenDialog1,"",@SW_SHOWMAXIMIZED)
   WinWaitActive("[CLASS:Qt5QWindowIcon]")
   Opt("MouseCoordMode", 1)
   MouseClick("left",27,38)
   Sleep(500)
   Send("{DOWN 2}")
   Sleep(500)
   Send("{ENTER}")
   Sleep(500)
   WinWaitActive("Open Image")
   Sleep(1000)

   Local $hWnd = WinWait("Open Image", "", 10)
   ControlSetText($hWnd, "", "Edit1", $sFileOpenDialog2)
   ControlClick("Open Image","","Button1")
   Sleep(500)
   MouseClick("left",1692, 191)      ;page "insert"
   Sleep(500)
   While 1
      Switch $FactorToolName
         Case "Get Point By Line"
            MouseClick("left",$CoordX, $CoordY)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Get Point By Circle"
            MouseClick("left",$CoordX+100, $CoordY)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1025,468)
         Case "Get Point By Arc"
            MouseClick("left",$CoordX+200, $CoordY)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,949,554,956,576)
         Case "Peak Line"
            MouseClick("left",$CoordX, $CoordY+100)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Peak Circle"
            MouseClick("left",$CoordX+100, $CoordY+100)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1025,468)
         Case "Peak Arc"                                              ;;;修改座标到此处
            MouseClick("left",$CoordX+200, $CoordY+100)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Middle Line"
            MouseClick("left",$CoordX, $CoordY+200)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "MaxMinPoint By Circle"
            MouseClick("left",$CoordX+100, $CoordY+200)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "MaxMinPoint By Rect"
            MouseClick("left",$CoordX+200, $CoordY+200)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "MaxMinPoint By Arc"
            MouseClick("left",$CoordX, $CoordY+300)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Get Line"
            MouseClick("left",$CoordX+100, $CoordY+300)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Get Circle"
           MouseClick("left",$CoordX+200, $CoordY+300)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "Get Arc"
            MouseClick("left",$CoordX, $CoordY+400)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case "ExtractContour"
            MouseClick("left",$Coord+100, $CoordY+400)
            Sleep(500)
            MouseClickDrag($MOUSE_CLICK_LEFT,954,592,1107,545)
         Case Else
            Exit
      EndSwitch
      Sleep(500)
      MouseClick("left",1717, 960)        ;"OK" button
      Sleep(500)

      MouseClick("left",1644, 992)        ;"Execute" button
      Sleep(500)
   WEnd
EndFunc

Func Terminate()
    Exit
EndFunc









原创粉丝点击