さっさと早く、Windowsでエクスプローラのプロセスの完全な再起動する件
結論
restart_explorer.bat
という名前で、中身が下記の名前で保存した
それをデスクトップの端っこ(右上など)
に置いておいて、いつでも簡単に実行できる状況にした。
タスクマネージャでエクスプローラのプロセスを見つけて、
右クリして再起動したのと同じ効果となるスクリプト
@echo off
taskkill /f /im explorer.exe
timeout /t 1 >nul
start explorer.exe
上記のスクリプトは何?
上記のスクリプトは、
タスクマネージャでエクスプローラのプロセスを見つけて、右クリ再起動したのと同じ効果となる
スクリプトだ。
エクスプローラーは起動してる窓を全部、×で閉じても、プロセス自体は裏で残ってるので
完全に再起動させるには、
タスクマネージャでエクスプローラのプロセスを見つけて、右クリ再起動
するしかない。
でも、それは、メンドイので、スクリプトをデスクトップの右端などに置いておいて
いつでも、さっさと実行できるようにした。
なんで、そんなスクリプト作ったの?
はらがたつことがあったからです。
Windows11で「タスクバーを自動的に隠れる」の設定にしていた
持ち運びがしやすいノートPCなのでディスプレイサイズが小さい
だから、画面サイズが大き目でサイズ変更ができないアプリを動作させたときに
下のほうのボタンがタスクバーの下に重なって押せないので
「タスクバーを自動的に隠れる」にして、おせるようにしていた
ところが、本来、隠れるはずのタスクバーが隠れない現象があった
また、調べていくとWindows11では、タスクバーは下に固定の一択で、
左とか右とか上とかにできないみたいだ。
( レジストリーをいじくればできるとのことだが、そんなのしたくない )
なんで、「タスクバーを自動的に隠れる」が動かないか、散々、調べると
explorer.exeのプロセスがおかしな挙動になってるときに、
その現象がおきて、
タスクマネージャーより、エクスローラのプロセスを見つけて
右クリック - 再起動
するとなおるということがわかった。
それで、解決して
「タスクバーを自動的に隠れる」が機能するようになった。
なんで、こんなことで・・めんどくさ!!
はらたつなー。思いました。
また、同様の現象がおきたときに、いちいち、
タスクマネージャーより、エクスローラのプロセスを見つけて
右クリック - 再起動
とか、メンドイので、デスクトップの右端においてるものをダブルクリックすればよい
の状態にしたかったので、冒頭のスクリプトを作ることにした次第である。
それで、自分のPC以外で、別の現場のPCで作業中にもそうしておきたいため
この記事の冒頭のスクリプトをコピペで同じ状況にできるようにするために
この記事を書きました。
そもそも、なんで、エクスプローラーのプロセスを右クリ - 再起動なの?
Windowsで作業していると、時々、下記のような現象がある。
エクスプローラー関連が固まって、挙動がおかしくなる不具合がある。
そして、しらばくすると、エクスプローラの窓が全部消えて
スタートメニューや、タスクバーの表示が消えて、
再度、表示が復活する。
そうすると、今までおかしな挙動をしていたのが、なおる。
この手の現象は、20年以上前からWindowsにある。
マイクロソフトは、これをぜんぜん、直していないように見える
PCのハードの性能が上がってきて、マシになってるだけで、根本なおってない
技術的には、
explorer.exeは"Windowsシェル"の中心で、UI全体の司令塔とのこと。
- スタートメニュー
- タスクバー
- ファイルエクスプローラー(フォルダを開くやつ)
- デスクトップそのもの
全部、explorer.exeが動かしているとのこと。
状態の保持が多すぎる
タスクバーの状態、ウィンドウ位置、アイコンキャッシュ、通知履歴…すべて保持し続ける。メモリリークや破損が起きやすい
リセット機構がない
iOSやmacOSはUIコンポーネントがクラッシュしたら再起動されるが、Windowsのexplorer.exeは
「自分から」リセットしない
古い互換性を背負いすぎている
Windows 95時代のAPIや仕様を一部継ぎ足しながら生きてるので、
泥だらけのレガシーコードが積み重なってる
explorer.exeが内部的に「自己矛盾」した状態(UIが隠れない、点滅しっぱなしなど)に陥る
→ そのまま放置してると一定のきっかけで勝手にクラッシュして再起動(昔からある「現象」)
→ 再起動後、メモリもUI状態もリセットされるので、直ったように見える
これ、20年以上変わってません。
だから、これが発生するや、いなや、デスクトップの端っこにおいてる
冒頭のスクリプトを実行することにしました。
はっきり言って「そのまま放置してると一定のきっかけで勝手にクラッシュして再起動」
になるまで、待てません
それから、いちいち、タスクマネージャー開いて、エクスプローラーのプロセス見つけて
右クリック - 再起動する 操作もメンドイです。
Discussion