写了个小程序,用来做压力测试;是加了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