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