1

Тема: AHK: ImageSearch & Оптимизация

Добрый день, знаком с ahk 2 дня, хочу понять как можно упростить данный скрип.
Задача: открыть случайную картинку и найти среди них нужную, картинка не подходит - листается дальше,как только нашлась выдается msgbox,и начинает заново искать,но теперь вторую.
Проблема: msgbox не закрывается, пытался двумя способами(Выделил их)



F1::
Run, C:\Users\000\Desktop\123.jpg
Sleep 200
First0:
	ImageSearch, xp, yp, 960, 480, 1017, 576, *50 Безымянный.png
	If xp > 0
	goto First1
	else xp =< 0
	goto First2
First1:	
		msgbox, Good
		sleep 1000
	   ControlFocus, TButton5           ;1-вый
		ControlSend,, {Enter}			;  способ
		click 1906, 16
		goto Second
First2:
		send {vk27}
		sleep 200
		goto First0
Second:
sleep 200
Run, C:\Users\000\Desktop\123.jpg
goto Second0
Second0:
	ImageSearch, xp, yp, -1133, 360, 848, 427, *50 Label2.png
	If xp > 0
	goto Second1
	else xp =<0
	goto Second2
Second1:
		msgbox, Good-2
		sleep 1000
		sendinput {vkD}              ; 2-рой способ
		click 1906, 16
Second2:
		send {vk27}
		sleep 200
		goto Second0

Return
	
F10::Exitapp

2 (изменено: Cerafim, 2017-12-18 18:57:04)

Re: AHK: ImageSearch & Оптимизация

Могу предложить заменить картинку(которую ищешь) на переменную, например:

F1::
Run, C:\Users\000\Desktop\123.jpg
Sleep 200
item=1
First0:
loop
{

if (item=1)
{
target=Безымянный.png
}

if (item =2)
{
target=Label2.png
}

ImageSearch, xp, yp, 960, 480, 1017, 576, *50 C:\Users\000\Desktop\%target%
If xp > 0 
{
goto First1
}

item:=item+1
}

First1:	
		msgbox, Good
		sleep 1000
	    ControlFocus, TButton5           ;1-вый
		ControlSend,, {Enter}			;  способ
		click 1906, 16
		item:=item+1
		goto First1
!e::
timenow = 
timenow += 0, second
FileAppend, %timenow%: закрытие скрипта пользователем`n, e:\Testlog.txt 	
exitapp

С координатами и размерами имеждсёрч ты ничего не напутал? (2я и 3я пары чисел)

Я сталкивался с похожей проблемой некоторое время назад и смог решить её через большое количество переменных, в том числе подстановкой изображения как переменную.

3

Re: AHK: ImageSearch & Оптимизация

В твоем примере msgbox ждет пока пользователь нажмет ОК. И ждать он будет хоть всю жизнь, но скрипт дальше не выполнится.
На офф. сайте в справке есть вот такой код:

MsgBox [, Options, Title, Text, Timeout]

Timeout - отвечает за задержку(в сек).
Делаем выводы.

Правильным вариантом будет:

MsgBox, 1, Good, Good, 5
Покинул форум