Что нового

Выполнение повтора imagesearch

deny

Новичок
Сообщения
46
Репутация
1
Код:
Global $Paused,$hLog,$Time,$y1
#Include <Log.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
#include <ImageSearch.au3>

HotKeySet("{F4}", "_Pause")

HotKeySet("{F10}","Stop")
$a=""
$b=""
$h = (" - Хром")
$hWin = WinGetHandle('Хром')
$x1 = 0
$x2 = 0
 $y1=0
Func stop()
    Exit
EndFunc


Func _Pause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)

        ToolTip('Отдыхаем!',1,1)
    WEnd

 EndFunc
#cs
$bEncrypted = '0xB6A6144E1441' ; пароль Привет
Do
	$pass=InputBox('Вход', 'Введите пароль', '', '*', 100, 130)
	If @error=1 Then  Exit
Until $pass == BinaryToString(_Crypt_DecryptData($bEncrypted, $pass, $CALG_RC4))
MsgBox(0, 'Вход', 'Пароль верный  ',1) ;MsgBox(0, 'Вход', 'Пароль верный - '&$pass)


#ce






 While 1




 WinActivate($hWin,"")
 Sleep(Random(1000, 3000))
 WinSetState($hWin,"",@SW_MAXIMIZE)
 TrayTip("Внимание!","Работаем",1000)
 

$res = _ImageSearch("test1.bmp",1,$x1,$x2,100)
    If $res = 1 Then   

;Если найден то продолжения скрипта
                                                                  
	Else
		        MouseClick("left",21,970)  ; Как сделать чтоб скрипт поиска скрина ток повторялся 
		
	continueloop	1;Вроде повторяет,но с самого начала и долго или через pixelsearch будет быстрее?:(
                                
		
		
;...если есть
endif

 MouseClick("left", 164,977)    ;
Sleep(Random(1000, 2000))
 send($b)
 ControlSend($hWin, "", "", "{Enter}")        



Sleep(Random(1000, 2000))
 send($a)
 ControlSend($hWin, "", "", "{Enter}")

MouseClick("left", 342, 136)              

Sleep(Random(1000, 2000))

MouseClick("left", 356,167)                     
Sleep(Random(1000, 2000))

 MouseClick("left", 164,977)
 send($a)

ControlSend($hWin, "", "", "{Enter}")

Sleep(Random(1500, 2000))
MouseClick("left", 319,119)
Sleep(Random(1000, 2000))
MouseClick("left", 504,131)
Sleep(Random(1000, 2000))
MouseClick("left", 778,387)
Sleep(Random(1000, 2000))


MouseClick("left", 164,977)
Sleep(Random(1000, 2000))
 send($b)
 ControlSend($hWin, "", "", "{Enter}")
 Sleep(Random(1000, 2000))

MouseClick("left", 318,113)
Sleep(Random(1000, 2000))
MouseClick("left", 507,224)
Sleep(Random(1000, 2000))
MouseClick("left", 794,509)
Sleep(Random(1000, 5000))
MouseClick("left", 791,503)
Sleep(Random(1000, 2000))



 MouseClick("left", 164,977)
Sleep(Random(1000, 2000))

 send($b)
 ControlSend($hWin, "", "", "{Enter}")
 
 
; ----------------------------------------------------

 MouseClick("left", 339,119)

Sleep(Random(1000, 2000))

 MouseClick("left", 339,119)

Sleep(Random(1000, 2000))

 MouseClick("left", 354,130)


                                          



$hLog = _Log_Open(@ScriptDir & '\MyProg.log', '###Event Log Files UDF Exaple###') (Сохранение в ини ,скок раз работал
_Log_Report($hLog, 'Начало', 6)


If $Time Then
    _Log_Report($hLog, 'Ping is successful, Time = ' & $Time & ' ms', 5)
Else
    Switch @error
        Case 1
            _Log_Report($hLog, 'Ping is fails, host is offline', 1)
        Case 2
            _Log_Report($hLog, 'Ping is fails, host is unreachable', 2)

    EndSwitch
EndIf
_Log_Report($hLog, 'Выход', 7)
_Log_Close($hLog)


   _Sleep(1500) ; Таймер на 15 секунд  ;~ Повтор всего скрипта
MsgBox(0,"Пауза...","Время вышло :)")

 WEnd

Func _Sleep($iSec,$iX=1,$iY=1)

    Local $hTimer = TimerInit(), $iTimer = 0

    Do
        $iTimer = Round(TimerDiff($hTimer)/1000,0)
        ToolTip("Прошло "&$iTimer&" из "&$iSec&" секунд...",$iX,$iY,"Пауза...")
        Sleep(250)
    Until $iTimer >= $iSec

    ToolTip("")
	EndFunc


Как реализовать Imagesearch повторялся только его кусок и если не нашёл скрин,чтоб повторялся только он? и если нашёл продолжал дальше цикл


Мой способ полностью повторяется и жестоко тормозит(
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
Re: Повтор Куска скрипта Imageseach и ....

Попробуй-те так:
Код:
#Include <Log.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
#include <ImageSearch.au3>

HotKeySet("{F4}", "_Pause")
HotKeySet("{F10}","Stop")

Global $Paused,$hLog,$Time,$y1

$a = ""
$b = ""
$h = (" - Хром")
$hWin = WinGetHandle('Хром')
$x1 = 0
$x2 = 0
$y1 = 0

Func stop()
    Exit
EndFunc

Func _Pause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Отдыхаем!',1,1)
    WEnd
EndFunc

#cs
$bEncrypted = '0xB6A6144E1441' ; пароль Привет
Do
    $pass=InputBox('Вход', 'Введите пароль', '', '*', 100, 130)
    If @error=1 Then  Exit
Until $pass == BinaryToString(_Crypt_DecryptData($bEncrypted, $pass, $CALG_RC4))
MsgBox(0, 'Вход', 'Пароль верный  ',1) ;MsgBox(0, 'Вход', 'Пароль верный - '&$pass)
#ce

While 1 ;Цикл 1
	WinActivate($hWin,"")
	Sleep(Random(1000, 3000))
	WinSetState($hWin,"",@SW_MAXIMIZE)
	TrayTip("Внимание!","Работаем",1000)

	While 1 ;Цикл 2
		$res = _ImageSearch("test1.bmp",1,$x1,$x2,100)
		If $res = 1 Then   ;Если найден то продолжения скрипта
			ExitLoop ;Выходим из цикла 2
		Else ;Если не найден то повторяем цикл 2
			ContinueLoop ;Продолжаем цикл 2
		endif
	WEnd

	MouseClick("left", 164,977)    ;
	Sleep(Random(1000, 2000))
	send($b)
	ControlSend($hWin, "", "", "{Enter}")

	Sleep(Random(1000, 2000))
	send($a)
	ControlSend($hWin, "", "", "{Enter}")

	MouseClick("left", 342, 136)

	Sleep(Random(1000, 2000))

	MouseClick("left", 356,167)
	Sleep(Random(1000, 2000))

	MouseClick("left", 164,977)
	send($a)

	ControlSend($hWin, "", "", "{Enter}")

	Sleep(Random(1500, 2000))
	MouseClick("left", 319,119)
	Sleep(Random(1000, 2000))
	MouseClick("left", 504,131)
	Sleep(Random(1000, 2000))
	MouseClick("left", 778,387)
	Sleep(Random(1000, 2000))

	MouseClick("left", 164,977)
	Sleep(Random(1000, 2000))
	send($b)
	ControlSend($hWin, "", "", "{Enter}")
	Sleep(Random(1000, 2000))

	MouseClick("left", 318,113)
	Sleep(Random(1000, 2000))
	MouseClick("left", 507,224)
	Sleep(Random(1000, 2000))
	MouseClick("left", 794,509)
	Sleep(Random(1000, 5000))
	MouseClick("left", 791,503)
	Sleep(Random(1000, 2000))

	MouseClick("left", 164,977)
	Sleep(Random(1000, 2000))

	send($b)
	ControlSend($hWin, "", "", "{Enter}")
	; ----------------------------------------------------
	MouseClick("left", 339,119)
	Sleep(Random(1000, 2000))
	MouseClick("left", 339,119)
	Sleep(Random(1000, 2000))
	MouseClick("left"'\MyProg.log', '###Event Log Files UDF Exaple###') ;Сохранение в ини ,скок раз работал
	_Log_Report($hLog, 'Начало', 6)


	If $Time Then
		_Log_Report($hLog, 'Ping is successful, Time = ' & $Time & ' ms', 5)
	Else
		Switch @error
			Case 1
				_Log_Report($hLog, 'Ping is fails, host is offline', 1)
			Case 2
				_Log_Report($hLog, 'Ping is fails, host is unreachable', 2)
		EndSwitch
	EndIf
	_Log_Report($hLog, 'Выход', 7)
	_Log_Close($hLog)

    _Sleep(1500) ; Таймер на 15 секунд  ;~ Повтор всего скрипта
	MsgBox(0,"Пауза...","Время вышло :)")
WEnd

Func _Sleep($iSec,$iX=1,$iY=1)

    Local $hTimer = TimerInit(), $iTimer = 0

    Do
        $iTimer = Round(TimerDiff($hTimer)/1000,0)
        ToolTip("Прошло "&$iTimer&" из "&$iSec&" секунд...",$iX,$iY,"Пауза...")
        Sleep(250)
    Until $iTimer >= $iSec

    ToolTip("")
    EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: Повтор Куска скрипта Imageseach и ....

deny
ты все еще не понял, что в названии темы должно быть краткое указание на проблему а не поток сознания? исправляй, больше предупреждать не стану
 
Автор
D

deny

Новичок
Сообщения
46
Репутация
1
у меня в скрипте несколько imageseach,как чтоб каждый цикл отдельно работал,а то у меня он как начинает кликать ((
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
Попробуй добавить каждый _ImageSearch() в отдельный цикл. Если найдет то выход из него, если нет - то повторяем...
 
Автор
D

deny

Новичок
Сообщения
46
Репутация
1
я сделал

Код:
while 1 
While 1
  $res = _ImageSearch("test.bmp",1,$x1,$y1,50)
    If $res = 1 Then
		ExitLoop
	Else
		MouseClick("left",21,970)
		ContinueLoop

EndIf
WEnd



While 1
  $res = _ImageSearch("test.bmp",1,$x1,$y1,50)
    If $res = 1 Then
		ExitLoop
	Else
		MouseClick("left",21,970)
		ContinueLoop

EndIf
WEnd




While 1
  $res = _ImageSearch("test.bmp",1,$x1,$y1,50)
    If $res = 1 Then
		ExitLoop
	Else
		MouseClick("left",21,970)
		ContinueLoop

EndIf
WEnd
wend

вот так у меня....(
а он у меня бешено кликает,даже пропуская нужный скрин)))
 
Автор
D

deny

Новичок
Сообщения
46
Репутация
1
ясн сам нашёл,вспомнил одну тему по которой сам задавал вопрос)
http://autoit-script.ru/index.php/topic,7708.0.html
 
Верх