Windows 95 でプロセス終了の確認なしで bat ファイルからシャットダウンする

Windows 95 でプロセス終了の確認なしで bat ファイルからシャットダウンする

ネット上のすべてのガイドでは、実行コマンドからRUNDLL USER.EXE、ExitWindowsを使用するように書かれています。

ただし、bat ファイルから実行すると、このコマンドは機能しますが、「残りの」プロセスを強制終了する確認を求めます。そのプロセスは、コマンド ラインそのものです。「CALL」で呼び出すことはできませんでしたが、call によって新しいコマンド ラインが作成されるため、結果は同じになると思います。

これは Windows 95 のみの質問で、アプリケーションを実行した後に仮想マシンを自動的にシャットダウンするためのものです。基本的には、スタートアップ プログラム フォルダーにスクリプトを配置して、アプリケーションを起動し、START /WAIT で終了するまで待機してから、何かを使用して Windows を自動的にシャットダウンするというものです。

答え1

プログラムをエクスプローラーではなくシェルとして設定すると、プログラムは自動実行され、プログラムが終了すると Windows がシャットダウンします。

2001年に私が投稿した記事より

c:\windowsにコピーします。編集しc:\windows\system.iniて変更する場合は

shell=explorer.exe 

shell=progman.exe

すると、コンピュータは win3.11 インターフェース モードで起動します。


私のウェブサイトが最後に更新されてから15年経ちましたhttp://www.mvps.org/serenitymacros

Windows を終了する

最初の 3 つのセクションは、ダウンロード ページで入手できる Tweak95 からのものです。4 番目のセクションは、Win98 での変更点です。

Windowsをシャットダウンする

Windows 95 を終了するコマンドです。これはシャットダウンにのみ使用でき、再起動や msdos への終了には使用できません。msdos への終了には、ExitToMsDos と入力して、同じ名前の Pif ファイルを実行します。コマンドをショートカットまたはバッチ ファイルに配置します。

C:\WINDOWS\RUNDLL32.EXE user.exe,ExitWindows

Windowsを再起動します

Windows を再起動するには、Exit To Dos.pif (pif 部分は非表示) をコピーし、それをコピーして Restart Windows に名前を変更します。プロパティでプログラム シートを編集し、コマンド ラインを次のように変更します。

C:\WINDOWS\command.com /C exit

[終了時に閉じる] がオンになっていることを確認します。[詳細設定] ダイアログで [現在の MSDos 構成を使用する] をオンにすると、再起動せずに Windows を終了して再起動できます。終了して再起動する前に確認が必要な場合は、[MSDos モードに入る前に警告する] をオンにします。[MSDos モード] をオンにする必要があります。

別の方法として、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 の場合はログオフです。Explorer が使用していると思われる Shell32.dll の文書化されていない関数 SHExitWindowsEx は、パラメータを受け取ります。

rundll32.exe shell32.dll,SHExitWindowsEx [optional number in hex]

アクション値(16進数)

EWX_LOGOFF 0 
EWX_SHUTDOWN 1 
EWX_REBOOT 2 
EWX_FORCE 4 
EWX_POWEROFF
for machines that turn off their own power 8 

これらの値は加算できます。たとえば、5 はシャットダウンであり、アプリケーションを強制的に終了し、暗黙的にログオフします。

再起動せずに再起動することはできないことに注意してください。これを行うには、User.exe の ExitWindows に 42 (16 進数) のパラメータを渡す必要があります。これはコマンド ラインからは実行できません。回避策については、上記のヒントを参照してください。

答え2

%windir%\System32\shutdown.exe -r -f

強制的-fにシステムをシャットダウンまたは再起動します。Windows 95では、パスはC:\Windows\Commandになります。このウェブサイト

答え3

上記のコマンドを で呼び出してみればstart、cmd.exe を待機させずにバックグラウンドで実行できるようになります。9x 構文はすぐにはわかりませんが、start /?コマンド ラインで を実行してください。

答え4

現代のコンピュータには、いくつかの自動シャットダウン方法があります(このリンクそしてこれ) ですが、Windows 95 は古すぎるので、動作しない可能性があります。(それでも、運試しをしてください。) すべて失敗した場合、残念ながら、唯一の選択肢は自分で作成すること、つまり、コンピューターをシャットダウンする Windows 95 アプリを作成することです。

関連情報