Что нового

[Автоматизация] Управление авто нажатием на кнопки в дос-программах

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Asshaker,
так ему ж вроде бы наоборот надо
Возможное появление ошибки (нужно проверять);
Если есть - нажать {ENTER}
то есть, как я понимаю, после каждой операции
Код:
Sleep (200)
If PixelGetColor(320,100,$hwnd) = 0xFFFF00 Then ControlSend ("C:\WINDOWS\system32\cmd.exe","","","{enter}")
 
Автор
F

forbrock

Новичок
Сообщения
43
Репутация
0
Вот то, что у меня получилось.
Кстати, как можно занести цикл проверки в функцию, чтобы потом вызывать, а не писать несколько раз?
Да и вообще может у кого будут идеи получше этой...
Код:
Opt ("pixelcoordmode", 0)

Run ("g:\run.bat")
sleep(3000)
WinActivate ("C:\WINDOWS\system32\cmd.exe", "")

While 1
	PixelSearch (160, 90, 190, 105, 0xFFFF00)
 If @error == 0 Then
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
	Sleep (250)
 Else 
	ExitLoop
 EndIf
WEnd

Sleep(150)
controlsend("C:\WINDOWS\system32\cmd.exe","","","{f11}")
Sleep (250)

While 1
	PixelSearch (160, 90, 190, 105, 0xFFFF00)
 If @error == 0 Then
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
	Sleep (250)
 Else 
	ExitLoop
 EndIf
WEnd

sleep(500)
controlsend("C:\WINDOWS\system32\cmd.exe","","","{DOWN 4}")
sleep(500)
controlsend("C:\WINDOWS\system32\cmd.exe","","","{Enter}{Right}{Enter}")
sleep(1000)

While 1
	PixelSearch (161, 90, 226, 145, 0xFFFF00)
 If @error == 0 Then
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
	Sleep (500)
 Else 
	ExitLoop
 EndIf
WEnd

controlsend("C:\WINDOWS\system32\cmd.exe","","","{Enter}")
sleep(500)
controlsend("C:\WINDOWS\system32\cmd.exe","","","!x")
sleep(500)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
Opt("PixelCoordMode", 0)

FOR $v IN $a
	
	run ("g:\run.bat " & $v)
	sleep(3000)
	WinActivate ("C:\WINDOWS\system32\cmd.exe", "")
	
	PixelSearch (160, 90, 190, 105, 0xFFFF00)
	If @error = 0 Then
		controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
		Sleep (250)
	EndIf
	
	Sleep(150)
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{f11}")
	Sleep (250)

	PixelSearch (160, 90, 190, 105, 0xFFFF00)
	If @error = 0 Then
		controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
		Sleep (250)
	EndIf
	
	sleep(500)
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{DOWN 4}")
	sleep(500)
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{Enter}{Right}{Enter}")
	sleep(1000)
	
	PixelSearch (161, 90, 226, 145, 0xFFFF00)
	If @error = 0 Then
		controlsend("C:\WINDOWS\system32\cmd.exe","","","{enter}")
		Sleep (250)
	EndIf
	
	controlsend("C:\WINDOWS\system32\cmd.exe","","","{Enter}")
	sleep(500)
	controlsend("C:\WINDOWS\system32\cmd.exe","","","!x")
	sleep(500)
 
Next
 
Автор
F

forbrock

Новичок
Сообщения
43
Репутация
0
C2H5OH сказал(а):
Нет, с If ... Then ничего не выйдет, т.к. ошибка может появится не известно когда и не известно сколько раз. Так что думаю на цикле While и остановлюсь.
Всем спасибо.
Не знаю где закрыть тему...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх