Что нового

[Мышь, клавиатура] Не получается работа с мышкой в цикле

kakawkin

Новичок
Сообщения
11
Репутация
0
Собственно не могу сделать в цикле:
Код:
WinActivate("Встречи - Google Chrome")
Local $a = 0
While $a = 4
 MouseMove(664,391,0)
 MouseClick("left")
 MouseMove(740,391,0) 
 Sleep(2000)
  If PixelGetColor( 740,391 )=Dec("5DCA0C") Then 
    MouseClick("left")
  Else
    MouseMove(664,391,0)
    MouseClick("left")
  EndIf
 $a=$a+1 
Wend

Не подскажите как сделать ему бесконечный массив, но который бы останавливал свою работу при нажатии, к примеру, ALT+Q
 

Mur

Осваивающий
Сообщения
132
Репутация
32
http://autoit-script.ru/index.php/topic,10511.msg69497.html#msg69497
И попробуйте заменить
Код:
While $a <= 4


Не подскажите как сделать ему бесконечный массив
Может быть Цикл? :whistle:

Тогда без переменной $a
Код:
While 1
;что-то в цикле
WEnd


Хромом не пользуюсь, но уверен, что это будет полезным http://autoit-script.ru/index.php?topic=4476.0
Для вашего
Код:
WinActivate("Встречи - Google Chrome")
 
Автор
K

kakawkin

Новичок
Сообщения
11
Репутация
0
и что будет при
Код:
While $a <= 4
?
Ну в конце будет $a=1 и условие выполнится и будет всего 1 шаг
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Для такого цикла я бы использовал For..Next:
Код:
WinActivate("Встречи - Google Chrome")
For $a = 0 To 4
	MouseClick('LEFT', 664, 391, 1, 0)
	Sleep(2000)
	If PixelGetColor(740, 391) = Dec('5DCA0C') Then
		MouseClick('LEFT', 740, 391, 1, 0)
	Else
		MouseClick('LEFT', 664, 391, 1, 0)
	EndIf
Next


P.S И зачем использовать MouseMove() а потом MouseClick(), если можно сразу MouseClick () ?
 

Mur

Осваивающий
Сообщения
132
Репутация
32
А вы попробуйте выполнить цикл с вашим условием:
Код:
Local $a = 0
While $a = 4
MsgBox(48, "123", "hi")
 $a=$a+1 
Wend

И с моим:
Код:
Local $a = 0
While $a <= 4
MsgBox(48, "123", "hi")
 $a=$a+1 
Wend

Он отработает так же, как и цикл ув. Zaramot, только его пример будет более кошерно выглядеть.
Код:
For $a = 0 To 4
MsgBox(48, "123", "hi")
Next


Если нужен всего один шаг, то можно было заключить ваши действия мышкой и прочее в Func EndFunc
Код:
$a = 0
if $a = 0 then _hi() ;только заменить для активного окна
Func _hi()
   MsgBox(48, "123", "hi") 
EndFunc


Или так:
Код:
Local $a = 1
While $a = 1
MsgBox(48, "123", "hi")
 $a= $a -1 
Wend
 
Верх