5

Скажем, я использую «shutdown -s -f -t 13600» для запуска запланированного завершения работы.

В Windows XP я всегда вижу диалоговое окно, предупреждающее меня о предстоящем завершении работы.

В Windows 7, однако, он показывает всплывающее окно в системном трее, которое исчезает через пару секунд.

Как запросить или включить диалоговое окно, например Windows XP, чтобы я знал, когда произойдет выключение?

4 ответа4

4

Я нашел способ.

Если вместо использования shutdown -s -f -t 13600

Вы используете shutdown -s -f -t 13600 -c "13600"

Параметр -c добавляет комментарий к событию завершения работы, зарегистрированному средством просмотра событий Windows

Ваш комментарий "13600" будет отображаться в окне просмотра событий, как показано в красном овале:средство просмотра событий, отображающее системные события

Чтобы увидеть это представление самостоятельно: введите Event Viewer в меню «Пуск» и перейдите в « Журналы Windows -> Система», и вы увидите список системных событий.

Любые события с идентификатором события 1074 будут отложено с задержкой.

Итак, нам нужен некоторый код, который получает последнее событие 1074 , ищет значение в комментарии к событию и добавляет это значение (в секундах) ко времени создания события, таким образом давая время завершения работы.

Я сделал функцию для Windows PowerShell (поставляется с Windows 7), которая делает это:

function nextShutdownTime
{
    $events = Get-WinEvent -FilterHashtable @{logname="system"; id=1074}
    $event = $events[0]
    $eventXML = [xml]$event.ToXml()
    return $event.TimeCreated.addSeconds([int]$eventXML.Event.EventData.Data[5])
}

Просто добавьте его в свой профиль PowerShell и в PowerShell просто введите команду nextShutdownTime чтобы увидеть ожидаемое время отключения.

1

Как запросить или включить диалоговое окно, например Windows XP, чтобы я знал, когда произойдет выключение?

Собственная программа завершения работы в Windows 7 не предоставляет диалоговое окно обратного отсчета (или кнопку отмены), как в предыдущих версиях Windows.

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

Вот пример: HTA Script - скрипт выключения и предупреждающее сообщение

Диалог выключения

Источник - мой личный блог.

1

Я потратил около часа, пытаясь сделать эту работу именно так, как вы хотели. Я экспериментировал, искал и искал, но я не мог сделать это идеально, но я смог что-то придумать.

Я пробовал каждую комбинацию выключения (опции -i -c -d), но ничего.

Я также экспериментировал с интерфейсом GUI после опции -i.

Я также попытался изменить отображение времени всплывающей подсказки, чтобы оно оставалось в системном блоке дольше, но, тем не менее, даже это исчезает.

Наиболее близкая к этому примерная команда: shutdown -i -r -t 300

Я думаю, дело в том, что они просто изменили способ, которым он работает, и я не думаю, что есть какой-то способ обойти это на 100%, но -i теперь вызывает диалоговое окно, тогда как раньше вызывало экран, который вы хотели , Когда я использовал -i в Windows 7, мне пришлось заполнить поле, и вот результат:

Затем я нажал Enter и получил это:

Я проверил, и кажется, что верхнее значение, которое вы можете указать в "Отображать предупреждение для X секунд", составляет всего 600, несмотря на то, что вы можете ввести до 999 (очень странное программирование).

0

Самый простой способ узнать, происходит ли завершение работы, - просто запланировать другое завершение работы. Дайте ему по крайней мере 200 секунд, просто чтобы быть уверенным. Либо вы получите сообщение о том, что уже происходит отключение, либо оно инициирует отключение по времени, которое можно прервать, нажав shutdown /a.

Итак, вы печатаете

shutdown /r /t 600

Теперь вы либо получите

C:\Users\Administrator>shutdown /r /t 600
A system shutdown has already been scheduled.(1190)

или это запланирует новое отключение.

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

C:\Users\Leon>shutdown /a
Cannot abort a system shutdown. There is no shutdown in progress (1116)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .