
В каждом руководстве в сети говорится, что нужно использовать RUNDLL USER.EXE,ExitWindows, который работает... из команды «Выполнить»
Однако при запуске из bat-файла эта команда, хотя и работает, запрашивает подтверждение на завершение «оставшихся» процессов. Этот процесс — сама строка cmd. Мне не удалось вызвать ее с помощью «CALL», но поскольку вызов создает новую командную строку, я ожидаю, что результат будет таким же.
Это вопрос только для Windows 95, он нужен для автоматического выключения виртуальной машины после запуска приложения. Идея в основном в том, чтобы иметь скрипт в папке автозагрузки программ, который запускает приложение, ждет, пока оно не завершится с помощью START /WAIT, а затем использует что-то для автоматического выключения окон.
решение1
Если вы установите программу в качестве оболочки вместо проводника, то она будет запускаться автоматически, а Windows завершит работу после выхода из программы.
Из поста, который я сделал в 2001 году
Скопируйте его в c:\windows. Если вы редактируете c:\windows\system.ini
и меняете
shell=explorer.exe
к
shell=progman.exe
то ваш компьютер загрузится в режиме интерфейса win3.11.
Из моего 15-летнего опыта с момента последнего обновления веб-сайтаhttp://www.mvps.org/serenitymacros
Выход из Windows
Первые три раздела взяты из Tweak95, доступного на странице загрузок. Четвертый раздел — изменения в Win98.
Завершить работу Windows
Команда для выхода из Windows 95. Ее можно использовать только для выключения, но не для перезапуска или выхода в msdos. Для выхода в msdos введите ExitToMsDos, который запустит Pif-файл с тем же именем. Поместите команду в ярлык или пакетный файл.
C:\WINDOWS\RUNDLL32.EXE user.exe,ExitWindows
Перезагрузить Windows
Чтобы перезапустить Windows, скопируйте Exit To Dos.pif (часть pif скрыта), скопируйте и переименуйте его в Restart Windows. Отредактируйте Program Sheet в свойствах. Измените командную строку на:
C:\WINDOWS\command.com /C exit
Убедитесь, что флажок Close On Exit установлен. В диалоговом окне Advanced установите флажок Use Current MSDos Configuration to exit and restart Windows without reboot. Установите флажок Warn Before Entering MSDos Mode, если перед выходом и перезапуском требуется подтверждение. Должен быть установлен флажок MSDos Mode.
Альтернативный способ — использовать функцию ExitWindowsExec. Это выход в MSDos для запуска программы, но поскольку программа не указана, Windows перезапускается. Нажмите на ярлык или диалоговое окно Пуск — Выполнить.
C:\WINDOWS\RUNDLL.EXE user.exe,ExitWindowsExec
Диалоговое окно «Выключить»
Этот reg-файл установит выбор по умолчанию в диалоговом окне «Завершение работы». Windows 95B и IE4 запоминают последнюю выбранную настройку, поэтому для установки значения по умолчанию для этих версий (а не последнего действия) добавьте следующую командную строку C:\Windows\Winstart.bat
(создайте Winstart.bat
при необходимости). Не забудьте использовать короткое имя filke.
Regedit C:\<Path to Reg File>\ShutDown.Reg
Или создайте ярлык этой командной строки и поместите его в папку «Автозагрузка».
Regedit /s C:\<Path to Reg File>\ShutDown.Reg
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
'1=first choice in dialog box, 2=second choice, ect.
"Shutdown Setting"=dword:00000001
Через SHExitWindowsEx
Использование функций User.exe и User32.dll Exit Windows не позволяет контролировать тип выполняемого выключения, поскольку параметры не передаются, они работают так, как будто передается 0 — что является выключением для ExitWindows и выходом из системы для ExitWindowsEx. Недокументированная функция SHExitWindowsEx в Shell32.dll, которую, по-видимому, использует Explorer, принимает параметры.
rundll32.exe shell32.dll,SHExitWindowsEx [optional number in hex]
Значение действия в шестнадцатеричном формате
EWX_LOGOFF 0
EWX_SHUTDOWN 1
EWX_REBOOT 2
EWX_FORCE 4
EWX_POWEROFF
for machines that turn off their own power 8
Эти значения можно складывать, например, 5 означает завершение работы и принудительное закрытие приложений, а также неявный выход из системы.
Обратите внимание, что перезапуска без перезагрузки нет. Для этого требуется параметр 42 (шестнадцатеричный) для ExitWindows в User.exe. Это невозможно сделать из командной строки. Смотрите совет выше для обхода.
решение2
%windir%\System32\shutdown.exe -r -f
Добавление -f
принудительно выключает или перезагружает систему. В Windows 95 путь будет C:\Windows\Command, ссылаясь наэтот сайт
решение3
Попробуйте вызвать указанную выше команду с помощью start
should, чтобы запустить ее в фоновом режиме и не оставлять cmd.exe в ожидании. Я не знаю синтаксис 9x навскидку, но сделайте a start /?
в командной строке.
решение4
Для современных компьютеров существует несколько методов автоматического выключения (см.эта ссылкаиэтот) но Windows 95 настолько стара, что они могут не работать. (И все же попытайте удачи.) Если все это не сработает, боюсь, у вас останется только один вариант — создать его самостоятельно; т. е. создать приложение Windows 95, которое выключает компьютер.