Что нового

зациклить скрипт и разобраться с If Then Else

Fortuno

Новичок
Сообщения
5
Репутация
0
Приветствую. Есть два вопроса, подскажите пожалуйста.
первый такой:

Есть цикл

Код:
While 10
If PixelGetColor(462, 271)=0xF345FG Then ExitLoop ;после нахождения этого цвета переходит к следующему пункту и начинает кликать мышкой пока не найдет еще один определенный цвет.
WEnd

While 11
   If PixelGetColor(462, 271)=0xF5D59D Then 
	  ExitLoop
   Else
      MouseClick("right", 967, 745)
      Sleep(1000)
      MouseClick("right", 963, 747)
   EndIf
WEnd

Подскажите, почему не кликает мышкой (впрочем, тут я допускаю что неверно цвет определил, спрашиваю в целом просто на всякий случай)

Второй такой (он же основной).
Есть код, начинающийся с

Код:
Run("C:\process.exe")
WinWaitActive("process")
While 1
   If PixelGetColor (763, 622)=0xAF6A1D Then ExitLoop
WEnd
MouseClick("left", 762, 631)

и заканчивающийся

While 11
   If PixelGetColor(462, 271)=0xF5D59D Then 
	  ExitLoop
   Else
      MouseClick("right", 967, 745)
      Sleep(1000)
      MouseClick("right", 963, 747)
   EndIf
WEnd
ProcessClose("process.exe")

Как сделать, чтобы после закрытия процесса скрипт начинался заново?
 

madmasles

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


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

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Как сделать, чтобы после закрытия процесса скрипт начинался заново?
Не тестировал:
Код:
MyFunc()

Func MyFunc()
   If Not ProcessExists("process") Then
	  Run("C:\process.exe")
   EndIf
   
   WinWaitActive("process")
   
   While 1
	  Sleep(100)
	  If PixelGetColor (763, 622)=0xAF6A1D Then ExitLoop
   WEnd
   
   MouseClick("left", 762, 631)

   While 1
	  Sleep(100)
	  If PixelGetColor(462, 271)=0xF5D59D Then 
		 ExitLoop
	  Else
		 MouseClick("right", 967, 745)
		 Sleep(1000)
		 MouseClick("right", 963, 747)
	  EndIf
   WEnd
   
   While ProcessExists("process")
	  Sleep(100)
	  ProcessClose("process.exe")
   WEnd
   
   MyFunc()
EndFunc
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
WHILE 1

Run("C:\process.exe")
WinWaitActive("process")
While 1
   If PixelGetColor (763, 622)=0xAF6A1D Then ExitLoop
WEnd
MouseClick("left", 762, 631)

и заканчивающийся

While 11
   If PixelGetColor(462, 271)=0xF5D59D Then 
      ExitLoop
   Else
      MouseClick("right", 967, 745)
      Sleep(1000)
      MouseClick("right", 963, 747)
   EndIf
WEnd
ProcessClose("process.exe")

WEND
 
Верх