Что нового

Не видит процесс с первого запуска.

Фазинур

Новичок
Сообщения
52
Репутация
0
У меня скрипт автоматически запускает прогу, там кликает два раза кнопку вниз и жмет интер, но почему то он видит окно только в том случае когда уже ранее запущена одна копия процесса, и в итоге получается два одинаковых процесса. Пожалуйста гуру autoit может че то я там неправильно пишу, я так то новичок в autoit, вот учусь писать на нем скрипты.

Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <GUIConstantsEx.au3> 

$mainwindow = GUICreate("Race BOT", 200, 100) 
$okbutton = GUICtrlCreateButton("START", 10, 50, 60)
$stopbutton = GUICtrlCreateButton ( "STOP", 140, 50, 50)
$dummywindow = GUICreate("Dummy window for testing ", 200, 100) 

GUISwitch($mainwindow) 
GUISetState(@SW_SHOW) 

While 1 
  $msg = GUIGetMsg(1) 

  Select 
    Case $msg[0] = $okbutton 
MsgBox(0, "RUN", "Запускать?")
run ("C:\Users\aigul\Desktop\DarkLauncher v5.0.exe")
WinActivate ("DarkLauncher")
sleep (1000)
	  Send("{DOWN}")
	  sleep (500)
		Send("{DOWN}")
		sleep (500)
		Send("{DOWN}")
		sleep (500)
		send("{ENTER}")
		run ("C:\Users\aigul\Desktop\NFSW_hack.exe")
$win1 = WinWaitActive("NEED FOR SPEED™ WORLD")
MsgBox (0, "", "Первое окно запущено")
WinActivate("[class:Progman]")
sleep (500)
        send("{UP}")
		sleep (4000)
		Send("{ENTER}")
		run ("C:\Users\aigul\Desktop\NFSW_hack.exe")
$win2 = WinWaitActive("NEED FOR SPEED™ WORLD")
MsgBox (0, "", "Второе окно запущено")
WinActivate("[class:Progman]")
sleep (500)
      send ("{UP}")
	  sleep (4000)
		send("{ENTER}")
		run ("C:\Users\aigul\Desktop\NFSW_hack.exe")
$win3 = WinWaitActive("NEED FOR SPEED™ WORLD")
MsgBox (0, "", "Третее окно запущено")        
WinActivate("[class:Progman]")
MsgBox(0, "Старт", "Завершен")
   Case $msg[0] = $stopbutton 
	  Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow 
      ExitLoop 
  EndSelect 
WEnd
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Попробуйте поставить sleep после:

Код:
run ("C:\Users\aigul\Desktop\DarkLauncher v5.0.exe")


Также вместо паузы можно попробовать поставить
Код:
ProcessWait
 

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
Фазинур
WinWait - ожидание нарисовки окна перед тем как имитировать на нём нажатия. Кстати возвращает дескриптор - точная идентификация окна для дальнейшей работы с этим окном.
 
Верх