PDA

Показать полную графическую версию : как узнать, что программа установилась?


polsok
27-01-2013, 09:42
мне нужно автоматизировать установку нескольких программ посредством скрипта и не допустить их одновременной установки.

Т.е. вначале запускается установка одной программы, затем по завершении ее запускается установка другой программы и т.д.

Есть какие нибудь маркеры в реестре, которые позволяют понять, что установка завершена.

Или есть какие нибудь более простые способы решения?

Iska
27-01-2013, 11:26
мне нужно автоматизировать установку нескольких программ посредством скрипта …»
Какого скрипта? Их много: Windows Script Host, PowerShell, Python, AutoIt, AutoHotKey и несть числа прочим. Кое-кто сюда же относит и пакетные файлы. И в каждом из них есть достаточно простой способ для желаемого.

polsok
27-01-2013, 20:48
Iska,
PowerShell, CMD, JavaScrypt... - укажи любой вариант.

Iska
27-01-2013, 22:28
Пакетный файл:
start "" /wait "D:\Install\7-Zip\7-Zip 9.20\7z920.exe"

Windows Script Host (VBScript):
WScript.CreateObject("WScript.Shell").Run """D:\Install\7-Zip\7-Zip 9.20\7z920.exe""", 1, True

Windows Script Host (JScript):
(new ActiveXObject("WScript.Shell")).Run('"D:\\Install\\7-Zip\\7-Zip 9.20\\7z920.exe"', 1, true);

PowerShell:
Start-Process "D:\Install\7-Zip\7-Zip 9.20\7z920.exe" -Wait

Это не единственные способы.

gora
29-01-2013, 15:42
Iska, к сожалению, предложенные варианты не спасают от установщиков, которые запускают дочерние процессы инсталляии и при этом закрывают основной процесс до завершения дочерних. :(

Iska
29-01-2013, 18:01
gora, конечно. Предложенный выше способ годится только для установщика, который «держит» дочерние процессы от начала и до конца инсталляции. В прочих случаях придётся рассматривать каждый конкретный из них отдельно.

shao
31-01-2013, 00:06
установщиков, которые запускают дочерние процессы инсталляии и при этом закрывают основной процесс до завершения дочерних. »
А , как вариант - перепаковывать "под себя" эти программы ?
Хотя не факт , что со всеми можно такое сотворить... Увы..

MKN
31-01-2013, 09:35
предложенные варианты не спасают от установщиков, которые запускают дочерние процессы инсталляии и при этом закрывают основной процесс до завершения дочерних. »
Достаточно знать ВСЕ возникающие при установке процессы, что не сложно выявить, и контролировать завершение ВСЕХ этих процессов, после чего запускать установку очередного ПО. Механизм реализации не имеет значения.
Но т.к. polsok, ничего не конкретизировал (может у него и в помине нет "многопроцессного" ПО ), то можно советовать лишь общий алгоритм действий.

Можно ещё извратиться, запуская "видимую" автоустановку ПО (что возможно почти всегда) и контролировать сообщение окончания установки, типа "Установка завершена" и т.п. , и после закрытия оного, запускать установку следующей программы. Такие игрушки успешно реализуются в AutoIt и иже с ним...




© OSzone.net 2001-2012