Что нового

[Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить кнопк

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Доброго времени суток.
ПРошу сильно не пинать меня, AutoIT изучаю как 3 дня.
Помогите решить следующее.
Необходимо в окне браузера(флеш игрушка)в определенном месте, нажать на левую кнопку мыши, затем дождаться появления прогрессбара и заполнения , до определенного момента, и отпустить кнопку.
думается что нужно использовать PixelSearch. хотя может есть варианты ?
версия 3.3.8.1

пример кода, того на что хватило знаний.

Код:
HotKeySet("{ESC}", "Terminate")
Func Terminate()
    Exit 0
 EndFunc
  $p = PixelSearch(813, 444, 859,445, 0xF4D74D)
    for $i=1 to 100
	  ;Sleep(300)
	  MouseMove(760,650)
	  ;sleep(300)
	;MouseDown("left") 
       Do 
		MouseDown("left") 
		  $p = PixelSearch(813, 444, 859,445, 0xF4D74D)
       Until $p = 1   
  If $p = 1 Then MouseUp("left") 
	 MouseUp("left") 
	  Next


a7e00948478c.png
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Подскажите пожалуйста, реально ли это реализовать ?
необходимо нажать кнопку в игре, и держать пока не появится нудный цвет на прогресбаре, и отпустить.
вот что то набросал... но не работает
Код:
MouseMove(760,655)
Sleep(200)
MouseDown("primary")
Sleep(200)
MouseUp("primary")
Sleep(1000)
MouseDown("primary")

While 1
			$cor = PixelSearch( 800, 390, 886, 9000, 0xF4E452);область поиска
			   If not @error Then
				  MouseUp("primary")
			   EndIf
WEnd

next
 

Maxim2001n2

Новичок
Сообщения
3
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Писал уже такой бот для игры "Рыбное место"... Сегодня утром:smile:
Код:
$x = 0 ;Координата X контрольной точки на прогрессбаре
$y = 0 ;Координата Y контрольной точки на прогрессбаре
$mx = 0 ;Координата X точки, в которой нужно удерживать кнопку мыши
$my = 0 ;Координата Y, соответственно
$CLR = $000000 ;Нужный цвет
MouseMove($mx, $my, 0)
MouseDown("left")
while 1
if (PixelGetColor($x, $y)==$CLR) then
MouseUp("left")
else
MouseDown("left")
endif
Sleep(100) ;Чтобы комп не зависал
wend

Писал от руки, так что если будут глупые ошибки, то сильно не ругай:smile:
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Все бы ничего, но прогресс бар появляется в какой то момент, и получить координаты и цвет нужной точки - проблематично. если отпустить кнопку - он исчезает.
 

lewel

Новичок
Сообщения
12
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

По моему, если я правильно понял, тебе нужно учесть несколько условий, найти на нем указанный цвет, если нашел то отпускаем кнопку, иначе держим кнопку пока не опухнем (или n-кол-во времени).
Вопрос в следующем для понимания, что тебе известно?
1. Куда нажимать на кнопку, чтобы появился прогресс бар, тебе известны координаты?
2. Область где появляется прогресс бар постоянная, или он появляется в рандомных местах?
3. Прогресс бар появляется и начинает заполняется цветной полоской (от желтого до красного) и в нем появляется нужный нам желтый цвет, на появление которого нужно отпустить кнопку? а то по картинке не совсем понятно.

Если так то код будет выглядеть вот так:
Код:
Local $x = ;Координата по Х начальной точки области, где появляется прогресс бар
Local $y = ;Координата по Y начальной точки области, где появляется прогресс бар
Local $xwidth = ;Координата по X конечной точки, где появляется прогресс бар
Local $yheight = ;Координата по Y конечной точки, где появляется прогресс бар
Local $mx = ;координата по X в которой удерживаем мышь.
Local $my = ;Координата по Y в которой удерживаем мышь.
Local $clr = ;нужный цвет.
Local $c = 0 ; переменная нужная чтобы, в случае сбоя  - цвет не найден вообще через какой то время можно было выйти с цикла
Local $time = ;некое значение, сколько циклов нужно совершить и выйти с цикла, чтобы не повис скрипт когда пиксель по какой то причине не найден вообще

MouseMove ($mx, $my, 0)
MouseDown ("left")

While 
   $clrseach = PixelSearch ( $x, $y, $xwidth, $yheight, $clr, 0, 0, 0)
   If Not @error Then
	  MouseUp ("left")
	  ExitLoop
   Else
	  $c = $c + 1
	  If $c > $time Then
             MouseUp ("left")
             ExitLoop
          EndIf
   EndIf
WEnd

Оберни все это в функцию и объяви. И да, учитывай что цвет нужно определять с помощью программы AutoIt Window Info, в самом окне игры.
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

1. Куда нажимать на кнопку, чтобы появился прогресс бар, тебе известны координаты?
Да, это постоянное место
2. Область где появляется прогресс бар постоянная, или он появляется в рандомных местах?
Постоянная
3. Прогресс бар появляется и начинает заполняется цветной полоской (от желтого до красного) и в нем появляется нужный нам желтый цвет, на появление которого нужно отпустить кнопку?
Именно так и есть, но как получить цвет, если он исчезает(прогресбар), удается только заскринить.
Вот примерчик того как это должно быть
http://www.youtube.com/watch?v=dBdD40dR7pg
 

lewel

Новичок
Сообщения
12
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

3. Прогресс бар появляется и начинает заполняется цветной полоской (от желтого до красного) и в нем появляется нужный нам желтый цвет, на появление которого нужно отпустить кнопку?
Именно так и есть, но как получить цвет, если он исчезает(прогресбар), удается только заскринить.
Вот примерчик того как это должно быть

По скрину определяем координаты нашего цвета, потом с помощь вот этой функции определяем цвет, получаем номер цвета, а дальше смотри мой пост выше
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

потом с помощь вот этой функции определяем цвет
Оно то может и так, вот только получить цвет как ? прогрессбар то появляется не разу.
этой функцией я могу в какой то момент его получить, но не факт, что на тот момент поргресбар уже будет заполнен, и будеит ли он вообще на тот момент .
 

lewel

Новичок
Сообщения
12
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Человек, пораскинь мозгами, сделай цикл бесконечный, пусть он тебе в какой то момент времени выдает результат, его оформи в диалоговое окно, и сиди юзай скрипт, увидишь, что в какой то момент времени одно значение, а в тот момент когда появляется прогресс бар другое. Вот его и бери. Все решаемо, но если ты ждешь чтобы за тебя это сделали и написали. то пиши в разделе заказов, думаю так будет правильно
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Человек, пораскинь мозгами
Это особенно хорошо получается, если они есть, чем к сожалению не могу похвастаться :(
 
Автор
K

kvitnitskiy

Новичок
Сообщения
56
Репутация
0
Re: [Мышь, клавиатура] Как нажать левуб кнопку мыши, дождаться нужного цвета пиксела и отпустить к

Всем спасибо, в принципе решил вопрос. добился чего хотел, осталось доработать напильником ;)
Всех с наступающим Новым Годом!
 

CreatoR

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

kvitnitskiy [?]

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх