![]() |
Помогите начинающему: как автоматически отменить перезагрузку компа
Уважаемые Мастера! Подскажите:
Есть программа которая по окончании запрашивает перезагрузку компьютера. Вот скриншот. Какой можно написать ВАТ-файл или скрипт, чтобы он автоматически ответил "НЕТ"? Система - Windows 98SE. Просьба сильно не пинать, если это просто. Пол дня сижу в нете и ничего похожего не нашел. Может не там смотрел? |
cambit, я бы попробовал такое: Параметры командной строки, которые поддерживаются обновлениями, разработанными с помощью технологии Iexpress.
Код:
<имя файла обновления>.exe /q /r:n |
Спасибо! оно!!!
Но у меня есть еще один вопрос. Таких файлов обновлений всего 21. Хочу одним ВАТ-файлом запустить их все по очереди (один установился - запускается следующий и т.д. ) Ткните носом где почитать! |
Попробуйте так:
Код:
start /wait <имя файла обновления1>.exe /q /r:n |
Iska, всегда считал, что команда:
Код:
start /wait install.exe Код:
install.exe Цитата:
|
Спасибо!! Очень интересно, вникаю.
Но аппетит приходит во время еды. Теперь закралась мысль все это сделать с помощью скриптов. Да еще что бы выскакивало сообщение типа "Устанавливается обновление 1 из 21" затем после выполнения его установки оно автоматически закрывалось, появлялось следующее "Устанавливается обновление 2 из 21" и т.д. а в конце типа "Все ОК, Перезагрузить компьютер? " Где можно прочитать оспособах вывода сообщения на екран? |
cambit, а консольное окно с такой информацией в виде списка не устраивает? Поищите ключи у устанавливаемых обновлений, возможно есть ключ для отображения хода установки без кнопок (может быть /q:u) и тогда не надо ни чего изобретать.
PS Можете попробовать так: Код:
@Echo Off PPS Нужна будет русская справка по nircmd, стучите в ПМ, поделюсь. |
Не проходит именно по вот этой причине:
Цитата:
|
Цитата:
1 Знать имя второго процесса и, если оно постоянное у всех обновлений, то организовывать цикл и ждать завершения этого процесса. Это и будет сигналом о завершении установки данного обновления, а после него переходить к следующему. 2 Оставить включенными окна с предложением перезагрузки и, если оно есть у всех обновлений и заголовок у него постоянный, то ждать в цикле появления этого окна, посылать с помощью nircmd в окно команду "No", и переходить к следующему обновлению. |
Спасибо за поощь и участие! Пробую справиться с задачей с помощью vbs-скриптов.
Подбросьте пример принудительного закрытия окна, открытого командой Popup или Msgbox. и вообще можно ли создать такое окошко без каких либо кнопок? |
Цитата:
Насчёт же ожидания, увы, не могу утверждать наверняка ни да, ни нет, поскольку оценивал «на глаз» посредством Process Explorer, вследствие того, что не нашёл ничего аналогичного Process Monitor, работающего под Win9x (кстати, может Вы знаете и подскажите?). На взгляд — ожидает, но я нашёл у себя только три мелких обновления для Win9x, а этого маловато, чтобы говорить определённо. Вариант из поста #7, конечно, хорош, но он рассчитан на cmd.exe, которого в Win9x, понятное дело, нет. Так что, на мой взгляд, «/q /r:n» вполне хватает (ну, конечно, кого-то может просто раздражать само окно консоли, понимаю). gora, ещё вопрос, возможно, Вы в курсе: я, интереса ради, попробовал запустить qchain.exe от W2K (KB815062) под Win9x для целей, описанных в KB296861 (с другой стороны, даже не знаю, было ли такое непосредственно под Win9x, и, вообще, актуально ли там такое). Запускаться — запускается, а, вот, проверить, корректно ли отрабатывает — опять же не могу, вследствие слишком малой базы обновлений, в которых нет пересекающихся файлов. Вы не пробовали такое? |
Iska, я уже давно ушел с Win9x и вряд ли смогу ответить на ваши вопросы, даже про cmd.exe не подумал... :(
|
gora, спасибо, ясно. Для меня эти вопросы тоже больше риторические; держу так, на всякий случай, развёрнутую систему под виртуальной машиной.
|
Попробовал, выкладываю.
В случае запуска BAT-файла с командами : Upd1.exe Upd2.exe Upd3.exe и т.д. Выполняются все сразу, а через start /wait - ждет окончания. Как проверил? Убрал ключ /r:n и в первом случае почти сразу вывалилось несколько предложений о перезагрузке, а во втором - сначала одно, нажимаю "НЕТ", потом другоеи т.д. Так что Iska прав. Что касается очередности запуска - я думаю поступлю таким образом - я записал последовательность установки с Windows Update, в таком порядке и буду запускать. |
Мастера! Подскажите, возможно ли написать Bat-файл таким образом, чтобы при выполнении установки первого файла в экране консоли появилась надпись "Установка обновления 1", (это я знаю как), а после завершения в этой же строке добавилось "ОК!", потом с новой строки "Установка обновления 2" и снова добавить"ОК!" и т.д.?
|
cambit,
Цитата:
Цитата:
Тогда можно будет изобразить нечто наподобие: |
Цитата:
По второму моему вопросу - ладно, обойдемся. Сторонние программы использовать нельзя. Еще подастаю вопросами, не возражаете? Как сделать, чтобы после установки всех обновлений из BAT-файла, который мы с Вами только что сделали, выскочило окошко с запросом на перезагрузку? Може что то дописать в ВАТ-ник? |
Еще проблема: скачал скрипт vbs для перезагрузки компьютера.
Вот он: strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate,(Shutdown)}!\\" & _ strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery _ ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems objOperatingSystem.Reboot() Next Так вот ХР перезагружается а 98SE выдает ошибку - см. Err.jpg Версия WSH в ХР - 5.7 а в 98-5.6 |
cambit, попробуйте вариант проще: How to Exit Windows 98/Me Automatically Using a Batch File:
Код:
@echo off |
Спасибо, катит.
А как с выводом окошка с подтверждением перезагрузки можно придумать? |
Чего то я намудрил с вопросом об окне, раз никто не отвечает.
Подскажите тогда как в том же ВАТ-нике прописать запрос на перегрузку? Я так думаю, надо создать переменную, в которую будут заносится значения "у" или "n" с клавиатуры и взависимости от этого значения будет запускаться или нет следующий ВАТ-файл с вышеуказанными строками: Цитата:
|
Цитата:
|
Всем СПАСИБО за помощь!
Проблему решил комбинировано с помощью Js-скрипта и 2-х ВАТ-файлов. Скрипт прилагаю: Код: //Программа установки обновлений WINDOWS98 var vbOKCancel = 1; var vbInformation = 64; var vbCancel = 2; var Message = "Запустить программу установки обновлений Windows 98SE?"; var Title = "Подтвердите действие"; var WSHShell = WScript.CreateObject("WScript.Shell"); Welcome(); WSHShell.Run("Update.bat",5,"True"); function Welcome() { var intDoIt; intDoIt = WSHShell.Popup(Message, 0, Title, vbOKCancel + vbInformation); if (intDoIt == vbCancel) { WScript.Quit(); } } //Запрос на перезагрузку var vbOK = 1; var Inf = 64; var Cancel = 2; var Messag = "Установка завершена. Компьютер следует перезагрузить. Выполнить?"; var Titl = "Подтвердите действие"; var WSHShell = WScript.CreateObject("WScript.Shell"); Welcom(); WSHShell.Run("Shutdown.bat",5,"False"); function Welcom() { var intDo; intDo = WSHShell.Popup(Messag, 0, Titl, vbOK + Inf); if (intDo == Cancel) { WScript.Quit(); } } |
Время: 06:41. |
Время: 06:41.
© OSzone.net 2001-