Что нового

выполнение действий по событиям

Статус
Закрыто для дальнейших ответов.

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
вобщем мне нужно чтобы получился такой алгоритм : нажал на цветной рисунок(после нажатия он становится серым), как только он опять становится цветным(цветность приобретает резко) нужно чтобы нажал на другой рисунок и дальше выполнял сценарий до его завершения(сценарий у меня повторяется)

пытался с поиском пикселя(серого и цветного) но до меня никак не дойдет как сделать так чтобы он (когда рисунок серый он продолжал искать в нём цветноый пиксель, а при нахождении нажимал на другой рисунок) :(
вобщем работать с Autoit только учусь и мало чего знаю, очень прошу помощи
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
DoubleTrouble
ознакомься - http://autoit-script.ru/index.php?topic=124.0
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
{CodeWarn.SModer}
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
Сделал все как показали но пишет ошибку: Error Variable used without being declared
не пойму как исправить, походу я не правильно перевел цвет в десятичный вид или не правильно его записал в команду :-\, можете мне показать как это сделать?
переводил с помощью этого:
Код:
$var = PixelGetColor( 354, 154 )
MsgBox(0,"The decmial color is", $var)
MsgBox(0,"The hex color is", Hex($var, 6))[code]
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
DoubleTrouble [?]
Сделал все как показали но пишет ошибку: Error Variable used without being declared
Говорит о том, что некая переменная не объявлена!
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
вот мой сценарий:
Код:
HotKeySet("{ESC}", "Terminate")
While 1
MouseClick("left", 354, 154, 1, 0)
Sleep(100)
if PixelGetColor ($354 , $154) <> $3948124 Then Exitloop
Sleep(10)
MouseClick("left", 575, 146, 1, 0)
Sleep(130)
MouseClick("left", 575, 146, 1, 0)
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
	Sleep (100)
Wend
Func Terminate()
    Exit 0
EndFunc	
можете указать мне ошибку? и как ее исправить?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Код:
if PixelGetColor ($354 , $154) <> $3948124 Then Exitloop

меняем на:
Код:
If PixelGetColor ("354" , "154") <> 3948124 Then Exitloop
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
Сделал как показали, помогло, но теперь другая проблема, если он этот пиксель не находит, то он продолжает сценарий дальше :( как сделать так чтобы он не продолжал его пока не найдет?
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
вобжем мне нужен такой алгоритм:
есть кнопка(она цветная) надо на нее нажать, после нажатия она становится серой, пока она серая нужно ждать пока не станет опять цветной, как только та(нажатая) опять станет цветной нужно нажать на ДРУГУЮ кнопку, вобщем именно это мне и нужно
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
Огромное спасибо, очень помогло :ok: :smile:
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
а каким путём можно еще выполнить такие действия кроме
Код:
pixelgetcolor

У меня появился новый случай где эта команда не работает :( а других команд для этих функций в хелпе никак не могу найти(
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
Идет загрузка изобажения(пока ижет загрузка нужно ждать) как только она завершится нужно нажать в другое место, вот только
Код:
 pixelgetcolor [code] не помогает, а [code] Sleep [code] не сильно хочется использовать т.к время загрузки каждый раз разное(бывает милисекунды и секунда и полторы), а мне нужна точность...
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
а если попробовать через подсчет контрольной суммы графической области(после обносления она же поидее должна поменяться) оно сможет помоч? Если да то как будет правильно применить эту команду и подсчитать?
 
Автор
D

DoubleTrouble

Новичок
Сообщения
15
Репутация
0
Код:
HotKeySet("{ESC}", "terminate")
While 1; на тот случай, если мы собираемся так играть вечно
    MouseClick("left", 364, 149, 1, 0); указываем реальные координаты! ; здесь у нас кнопка должна стать серой
$checksum = PixelChecksum(443, 165, 778, 488)
; Wait for the region to change, the region is checked every 100ms to reduce CPU load
While 
	 If PixelChecksum(443, 165, 778, 488, 3) @error <> 0 Then ExitLoop
  Sleep(100)
WEnd
MouseClick("left", 575, 146, 1, 0)
Sleep(70)
MouseClick("left", 575, 146, 1, 0)
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
Sleep(100)
$color_grey  = 1514002 ; серые цвета бывают разные, пишем именно "наш" серый цвет
While 1
        If PixelGetColor( 364, 149 ) <> 1514002 Then ExitLoop ; если кнопка НЕ серая, то выходим из этого цикла и жмем другую кнопку
		WEnd
WEnd
Func Terminate()
    Exit 0
EndFunc	

можете указать мне мою ошибку? с подсчетом, оно не хочет работать :(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Тема закрыта в связи с игнорированием просьбы модератора, и ко всему тема очень общая, под её заголовок попадают очень многие темы.
 
Статус
Закрыто для дальнейших ответов.
Верх