Что нового

Оптимизация скрипта с функцией PixelSearch

Duff1993

Новичок
Сообщения
29
Репутация
0
Добрый день. Есть вот такой срипт:

Код:
$Color = 0x00FFFF ;Это цвет
$Dip_Col = 0 

While 1
main()
main2()
Wend

Func main()
   PixelSearch( 834, 291, 842, 298, $Color, $Dip_Col)
     If Not @error Then MouseClick("left")
	 EndFunc

Func main2()
	  PixelSearch( 817, 526, 914, 677, $Color, $Dip_Col)
	  If Not @error Then MouseClick("left")
EndFunc


Не смотря на то, что указаны небольшие области поиска, левый клик мышки происходит с небольшим запозданием.
Есть подозрения, что данная проблема происходит из за "while1 wend".

Вопрос: как можно ускорить работу скрипта, что бы клик происходил мгновенно при появлении нужного цвета к области.
Буду благодарен за ваши примеры!
Спасибо!
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Может будет быстрее. http://autoit-script.ru/index.php?topic=19590.msg120992#msg120992
 
Автор
D

Duff1993

Новичок
Сообщения
29
Репутация
0
Prog сказал(а):
Может будет быстрее. http://autoit-script.ru/index.php?topic=19590.msg120992#msg120992

К сожалению нет. Наоброт, периодично появились простои.
Может будет эффективней переписать без функций? Старички, нужен ваш совет.
 

qqww22

Новичок
Сообщения
115
Репутация
4
for Работает быстрее while

пробуй такую конструкцию

Код:
$max = 10
for $i = 0 to $max

$max+=1
next
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Duff1993 [?]
К сожалению нет. Наоброт, периодично появились простои.
Возможно дело в коде. Если не секрет покажите как вызывали функции из DLL. Возможно код можно будет оптимизировать.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Конкретно этот код можно написать из без вызова функций
Код:
$Color = 0x00FFFF ;Это цвет
$Dip_Col = 0 
While 1
   PixelSearch( 834, 291, 842, 298, $Color, $Dip_Col)
   If Not @error Then MouseClick("left")
   PixelSearch( 817, 526, 914, 677, $Color, $Dip_Col)
   If Not @error Then MouseClick("left")
Wend

Это слегка ускорит его.
Но возможно что дело вовсе не в коде, а в цвете. Вы уверены, что цвет появляется сразу чистым? А то может он в течении нескольких сот миллисекунд проходит от одно цвета до того, который вы ищите. Соответственно программа и не видит его во время этого перехода.
И ещё вопрос: А мышкой вам без разницы куда кликать? Или она у вас уже установлена в область нажатия?
 

GigRise

Новичок
Сообщения
5
Репутация
0
PixelSearch не дружит с режимом Aero, попробуй отключить его.
 
Верх