Что нового

[Автоматизация] Перестает работать цикл

fmxsxmx

Новичок
Сообщения
3
Репутация
0
Вот небольшой скрипт с бесконечным циклом. Щелкает несколько раз затем перестает работать, подскажите пожалуйста почему?
Код:
qwerty()
Func qwerty()
While 1
Local $coord = PixelSearch(959,553,961,544,12191508,20)
If Not @error Then
MouseClick("Left")
Sleep(150)
EndIf
WEnd
EndFunc
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Вариантов может быть несколько
- Не находит данный цвет.
- Становится активным другое окно и клик мышкой уходит не туда, куда надо.

Как вариант, привяжите все действия к окну, с которым работаете.
P.S. оформляйте код в теги autoit так будет легче читать.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
fmxsxmx [?]
Мне вот другое интересно, почему вы поместили код в тег hide? :scratch:

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Администратор.
 
Автор
fmxsxmx

fmxsxmx

Новичок
Сообщения
3
Репутация
0
Прошу прощения за hide, 1 день на форуме думал это скроет код в спойлер для удобства...
Спасибо за советы, буду искать как привязывать скрипт к окну


Таким образом?
Код:
WinWaitActive("qwerty")
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Код:
;В основном коде
Global $hWnd = ... ; Здесь привязка к окну 
; или
Dim $hWnd = ... ; Здесь привязка к окну
qwerty($hWnd) ; и передача в функцию


PixelSearch(959, 553, 961, 544, 12191508, 20, 1, $hWnd)
ControlClick($hWnd, "", "", "left")

Хотя я сам новичок, если где не прав, думаю меня поправят.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
На счет привязки:
Код:
qwerty()
Func qwerty()
	Local $coord, $hWnd
	; ---
	$hWnd = WinGetHandle( "Заголовок окна" )

	While 1
		;Координаты поиска относительно $hWnd, поправьте
		$coord = PixelSearch( 959, 553, 961, 544, 0xBA0714, 20, 1, $hWnd )
		If Not @Error Then
			ControlClick( $hWnd, "", "" )
			Sleep(150)
		EndIf
	WEnd
EndFunc
 
Автор
fmxsxmx

fmxsxmx

Новичок
Сообщения
3
Репутация
0
Спасибо за код привязки к окну, работает, но все еще с какими-то перебоями.
Возможно что поможет уменьшение области поиска или увеличить отклонение в цвете?
Может кто-нибудь объяснить как работает сканирование пикселей? И можно как нибудь увеличить частоту?
 
Верх