Что нового

[Автоматизация] Автоустановка в тихом режиме.

Axel.m

Чайник
Сообщения
4
Репутация
1
Доброго времени суток.
Я второй день пытаюсь вникнуть в AutoIT. Примеры для новичков из справки прошёл налету) всё это конечно интересно, но самое главное для себя так и непонял... AutoIT работает только с активным окном? Тоесть пока он работает я неработаю... Как же лучше объяснить что я хочу спросить... Вобщем, я говорю про автоустановку программ, а если ещё проще, то какое либо действие, при котором нужно просто запустить скрипт, а он бы сделал действие не перехватывая клаву и мышь, невыводя некаких окон, полный скрытый режим, или тихий, незнаю как правильно, в дереве появляется процесс, отробатывает и исчезает, всё. незнаю понятноли я выразился. Но если можете, прошу бывалых, написать скрипт, который просто откроет (допустим тот же) блокнот, напишет в него любой текст и закроет его, но самое главное, что бы это было невидно мне как пользователю, я просто запускаю скрипт... ещё такой момент, можно не создовать новый .txt файл, а открыть существующий, что бы незаморачиваться с сохранением, и желательно выделить ту часть скрипта, которая делает его выполнение невидимым. ну вот вроде так...
Заранее спасибо.

P.S. Также сильно поможет пример с тойже установкой архиватора как и в справке, но невидимой для пользователя...
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 517
Репутация
321
Re: Члючевой вопрос. Помогите разобраться

Используй Run с @SW_HIDE, читай про ControlClick и используй программу Au3info.exe
Вот примет установки Nero 9(правда не полный вариант)
Код:
Run("nero.exe","",@SW_HIDE )
WinWait("Установка Nero Lite 9.4.13.2 Build.1.0","Italiano")
ControlClick("Установка Nero Lite 9.4.13.2 Build.1.0","Italiano","[CLASS:Button; INSTANCE:18]")
ControlClick("Установка Nero Lite 9.4.13.2 Build.1.0","Italiano","[CLASS:Button; INSTANCE:1]")
WinWait("Установка Nero Lite 9.4.13.2 Build.1.0","Отмена")
ControlClick("Установка Nero Lite 9.4.13.2 Build.1.0","Отмена","[CLASS:Button; INSTANCE:3]")
WinWait("Установка Nero Lite 9.4.13.2 Build.1.0","Я согласен с пунктами данного лицензионного соглашения.")
ControlClick("Установка Nero Lite 9.4.13.2 Build.1.0","Я согласен с пунктами данного лицензионного соглашения.","[CLASS:Button; INSTANCE:3]")
ControlClick("Установка Nero Lite 9.4.13.2 Build.1.0","Я согласен с пунктами данного лицензионного соглашения.","[CLASS:Button; INSTANCE:1]")
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: Члючевой вопрос. Помогите разобраться

Axel.m
Предупреждение
Переименуй тему. Она не несет абсолютно никакой смысловой нагрузки

НЛО (Небольшое Лирическое Отступление)
Ты правильно сделал, что начал изучать язык (в частности AutoIt) с изучения справки. Но начать пользоваться форумом тоже надо было с изучения "Правил поведение" на форуме. Хотя бы самых основных. Это недолго, и самое главное полезно для дальнейшего твоего здесь комфортного пребывания. В частности, обрати особое внимание на эти пункты.
Раздел В
И в особенности Раздел В. П5
 

me4enyi

Чайник
Сообщения
2
Репутация
0
Ну и мне пожалуй в эту тему...
Ситуация такая. Скриптом запускается exe.
Запускается программа, в ней можно использовать первое нажатие по кнопке APPLY только при помощи задания координат.
Если это первый запуск программы, при нажатии на кнопку APPLY выскакивает окно Ready to go? там нужно нажать кнопку Да,
если запуск не первый, то при нажатии на кнопку APPLY выскакивает окно Warning нужно выбрать ответ Нет.

З.Ы. Сразу скажу, что я дуб, но хочется научиться.
Run ("CW.exe")
WinWaitActive('Chew0.9')
Opt("MouseCoordMode",2)
MouseClick("left", 301, 205)
If WinExists("Ready to go?","",2) Then
ControlClick ( "Ready to go?", "", "[CLASS:Button; INSTANCE:1]" )
Else
If
WinExists("Warning","",2) Then
ControlClick ( "Warning", "", "[CLASS:Button; INSTANCE:2]" )
Exit
EndIf
EndIf
Изначально пробовал не WinExists, а WinWaitActive.
Работает первое нажатие, а если программа запускается повторно, то на первую кнопку нажатие происходит, после чего выскакивает окно Warning, где нужно нажать НЕТ и скрипт останавливается, нажатия не происходит... :(
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
to me4enyi
попробуй так:
Код:
Run("CW.exe")
WinWaitActive('Chew-WGA v0.9')
Opt("MouseCoordMode", 0)
MouseClick("left", 300, 200)
WinWaitActive("")
If WinExists("Ready to go?") Then
	ControlClick("Ready to go?", "", "[CLASS:Button; INSTANCE:1]")
Else
	ControlClick("Warning", "", "[CLASS:Button; INSTANCE:2]")
EndIf
 

vovsla

Осваивающий
Сообщения
546
Репутация
26
что касается автоматической установки различного софта, то не нужно сразу делать программу кликер, иногда нужно просто запустить файл с определёнными параметрами, в зависимости от типа инсталлятора
http://www.oszone.net/2766 кстати, чтобы посмотреть на ключики "msiexec", достаточно просто набрать "msiexec" в командной строке
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Vovsla
Это не инсталятор, в данном случае, а просто флеш-меню :smile:
 

me4enyi

Чайник
Сообщения
2
Репутация
0
Guezt сказал(а):
Vovsla
Это не инсталятор, в данном случае, а просто флеш-меню :smile:
В данном случае, ты абсолютно прав! :smile:
Спасибо за совет, все получилось :laugh:

Vovsla не любой ключ тихой установки устанавливает то что нужно. Бывает, что нужно некоторые галочки поснимать, бывает нужно путь установки изменить, ключик забить...
 

max_mur

Чайник
Сообщения
1
Репутация
0
Здравствуйте, помогите разобраться.
Необходимо скрыть окно установщика программы Quantum GIS, вот три первых строки скрипта:

Код:
Run("QGIS-1.4.0-1-No-GrassSetup.exe","",@SW_HIDE)
WinWait("Quantum GIS Enceladus","Welcome to the Quantum GIS Enceladus")
ControlClick("Quantum GIS Enceladus","Welcome to the Quantum GIS Enceladus","[CLASS:Button; INSTANCE:2]")


Суть в том, что без команды @SW_HIDE скрипт полностью отрабатывает (естественно не скрывая окно), а с ней скрывает, но стопорится на второй строке не видя запущенной им программы (окна).
Если я ошибся, то скажите где.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
max_mur
Некоторые программы не поддерживают режим @SW_HIDE при запуске. Когда я с этим столкнулся, то попытался программу обмануть, т.е.
Код:
WinWaitActive("title", "text")
WinSetState("title", "text", @SW_HIDE)
Окно скрывалось, но дальше - висим. Может быть коряво, но я нашел для себя следующий выход:
Код:
WinWaitActive("title", "text")
WinSetTrans ("title", "text", 1)
Окно мелькнет, но дальше можно с ним работать. У себя, чтобы это "мелькнет" было по-короче, я сделал
Код:
Opt("WinWaitDelay", 0)
 
Верх