Что нового

[Мышь, клавиатура] подскажите в чем ошибка

Safron9999

Новичок
Сообщения
42
Репутация
0
Код:
HotKeySet('{HOME}', '_START') ;Клавиша HOME для запуска
HotKeySet('{END}', '_END') ;Клавиша END ддя выхода

While 1
    Sleep(100)
WEnd

Func _START()
while 1
MouseClick("left",1490,565,1)
   sleep(9000)
   MouseMove(1017,511)
   sleep(100)
   If PixelGetColor(1012, 509) == 0x020256 Then MouseClick("primary", 1017, 510)
WEnd
EndFunc

Func _END()
    Exit
EndFunc


никак не хочет клацать мышкой при появлении заданного цвета... подскажите плиз где я ошибся?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
так сработает
Код:
if "0x"& Hex(PixelGetColor(1012, 509),6) == 0x020256 Then



Добавлено:
Сообщение автоматически объединено:

Ты бы глянул сначала какое значение PixelGetColor возвращает что ли :whistle:
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
а как это посмотреть?

всеравно не работает ((
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
а как это посмотреть?
Достаточно заглянуть в справку. Там пример есть.
Код:
$test = PixelGetColor(1012, 509)
MsgBox(64, "test1", $test)
MsgBox(64, "test2", Hex($test, 6))
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
уже проверил все совпадает никак не могу понять в чем причина ((

может это быть связано с тем что у меня Win 7?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Почему так?
Код:
If PixelGetColor(1012, 509) == 0x020256 Then MouseClick("primary", 1017, 510)


А не так?
Код:
If PixelGetColor(1012, 509) = 0x020256 Then 
	MouseClick("primary", 1017, 510)
EndIf


P.S.
Еще вот.
Значение 15791353 я предварительно узнал так
Код:
MsgBox(64, "test1", $test)


Это работает (у меня на XP SP3)
Код:
If PixelGetColor(1012, 509) = 15791353 Then 
	MsgBox(64, "test", "Ok")
EndIf
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Мой пример разве не работает?

Код:
If "0x"& Hex(PixelGetColor(1012, 509),6) = 0x020256 Then MouseClick("left", 1017, 510)

Данная конструкция вполне справедлива. Если то что ты хочешь сделать умещается в одну строку. ты вполне можешь указать это сразу же после Then и тем самым избежать использования EndIf
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
оба варианта не работают. курсор остается на месте ((( все уже перепробовал.....
цвет определял с помощью программы pixie
в чем тут может быть причина...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
В том что ты указываешь не тот цвет который надо.
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
тогда как мне узнать ТОТ который надо? ( уже кучу определителей цвета перепробовал в том числе и предлагаемые в этой теме...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
PixelSearch команду почитай.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Попробуй еще разок
Дадим паузу в 30 секунд
Свернем все окна и откроем именно то (игра, наверное),
где надо посмотреть цвет в координате.
Код:
Sleep(30000) ;пауза 30 секунд
$test = PixelGetColor(1012, 509)
MsgBox(64, "test1", $test)
MsgBox(64, "test2", Hex($test, 6))

Еще есть инструмент AutoIt Window Info
Им проверяй.
Вкладка - Mouse, цепляешь мышью прицел и наводишь куда надо.
 
Автор
S

Safron9999

Новичок
Сообщения
42
Репутация
0
Yuriy, огромное СПАСИБО!!!! целый день мучился! AutoIt Window Info помогла! все заработало!
 
Верх