Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Аватара пользователя
cambit

Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Уважаемые Мастера! Подскажите:

Есть программа которая по окончании запрашивает перезагрузку компьютера.

Вот скриншот.

Какой можно написать ВАТ-файл или скрипт, чтобы он автоматически ответил "НЕТ"?

Система - Windows 98SE.

Просьба сильно не пинать, если это просто. Пол дня сижу в нете и ничего похожего не нашел.

Может не там смотрел?
Аватара пользователя
Iska

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение Iska »

Спасибо! оно!!!

Но у меня есть еще один вопрос.

Таких файлов обновлений всего 21. Хочу одним ВАТ-файлом запустить их все по очереди (один установился - запускается следующий и т.д. ) Ткните носом где почитать!
Аватара пользователя
cambit

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Попробуйте так:



Код:

Код: Выделить всё

start /wait <имя файла обновления1>.exe /q /r:n
start /wait <имя файла обновления2>.exe /q /r:n
…
start /wait <имя файла обновленияN>.exe /q /r:n

Но допустима ли и возможна ли таким образом корректная установка всей цепочки обновлений — не знаю. По крайней мере, постарайтесь «ручками» выстроить порядок обновления в порядке, обратном свежести выхода обновлений; т.е. от старых — к новым.
Аватара пользователя
cambit

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Iska, всегда считал, что команда:

Код:

Код: Выделить всё

start /wait install.exe

эквивалентна команде:

Код:

Код: Выделить всё

install.exe

и не дает ни каких преимуществ. Или я ошибаюсь!?
Цитата cambit:



Таких файлов обновлений всего 21. Хочу одним ВАТ-файлом запустить их все по очереди (один установился - запускается следующий и т.д. )
Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа




Если запускаемое приложение не запускает дочерний процесс и при этом не закрывают основной, то второе приложение запустится только по завершению первого, но если приложение закроет свой основной процесс и продолжит выполнять дочерний, то второе приложение запустится не дожидаясь окончания установки первого. Все будет зависеть от ваших приложений и их особенностей.
Аватара пользователя
cambit

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Попробуйте так:



Код:

Код: Выделить всё

start /wait <имя файла обновления1>.exe /q /r:n
start /wait <имя файла обновления2>.exe /q /r:n
…
start /wait <имя файла обновленияN>.exe /q /r:n

Но допустима ли и возможна ли таким образом корректная установка всей цепочки обновлений — не знаю. По крайней мере, постарайтесь «ручками» выстроить порядок обновления в порядке, обратном свежести выхода обновлений; т.е. от старых — к новым.
Аватара пользователя
gora

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение gora »

cambit, а консольное окно с такой информацией в виде списка не устраивает? Поищите ключи у устанавливаемых обновлений, возможно есть ключ для отображения хода установки без кнопок (может быть /q:u) и тогда не надо ни чего изобретать.



PS

Можете попробовать так:

Код:

Код: Выделить всё

@Echo Off
Setlocal EnableDelayedExpansion
Title Setup UpDate
nircmdc cmdwait 100 win min ititle "Setup UpDate"
For %%J In (
	"UpDate 1.exe"
	"UpDate 2.exe"
	"UpDate 3.exe"
	"UpDate 4.exe"
	"UpDate 5.exe"
	"UpDate 6.exe"
	"UpDate 7.exe"
	"UpDate 8.exe"
	"UpDate 9.exe"
	"UpDate 10.exe"
	"UpDate 11.exe"
	"UpDate 12.exe"
	"UpDate 13.exe"
	"UpDate 14.exe"
	"UpDate 15.exe"
	"UpDate 16.exe"
	"UpDate 17.exe"
	"UpDate 18.exe"
	"UpDate 19.exe"
	"UpDate 20.exe"
	"UpDate 21.exe"
) Do (
	Set /a cnt+=1
	Start "" /b nircmdc infobox "Устанавливается %%~J [!cnt! из 21]" "Установка обновлений"
	%%J /q /r:n
	nircmdc dlg "" "Установка обновлений" click Yes
)
nircmdc qboxcom "Установка обновлений завершена.~nПерезагрузить компьютер?" "Перезагрузка компьютера" exitwin reboot
Exit

Имена файлов впишете свои, утилиту
nircmdc
и скрипт положите рядом с файлами обновлений.



PPS

Нужна будет русская справка по nircmd, стучите в ПМ, поделюсь.
Аватара пользователя
cambit

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Не проходит именно по вот этой причине:


Цитата gora:



Если запускаемое приложение не запускает дочерний процесс и при этом не закрывают основной, то второе приложение запустится только по завершению первого, но если приложение закроет свой основной процесс и продолжит выполнять дочерний, то второе приложение запустится не дожидаясь окончания установки первого. Все будет зависеть от ваших приложений и их особенностей.
Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа




А там два процесса - сначала распаковка архива а потом собственно обновление.
Аватара пользователя
gora

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение gora »

Цитата cambit:



там два процесса - сначала распаковка архива а потом собственно обновление
Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа




Тогда есть два варианта:

1 Знать имя второго процесса и, если оно постоянное у всех обновлений, то организовывать цикл и ждать завершения этого процесса. Это и будет сигналом о завершении установки данного обновления, а после него переходить к следующему.

2 Оставить включенными окна с предложением перезагрузки и, если оно есть у всех обновлений и заголовок у него постоянный, то ждать в цикле появления этого окна, посылать с помощью nircmd в окно команду "No", и переходить к следующему обновлению.
Аватара пользователя
cambit

Re: Любой язык - [решено] Помогите начинающему: как автоматически отменить перезагрузку компа

Сообщение cambit »

Спасибо за поощь и участие! Пробую справиться с задачей с помощью vbs-скриптов.

Подбросьте пример принудительного закрытия окна, открытого командой Popup или Msgbox.

и вообще можно ли создать такое окошко без каких либо кнопок?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»