Windows Explorer

概要

Windowsのシェルとしてタスクバーやデスクトップ環境などの画面表示用インタフェース（シェル）を提供するソフトウェアである。標準設定ではWindowsの起動と共にエクスプローラーは起動し、デスクトップの表示やアプリケーションの起動、データファイルを関連づけられたアプリケーションで起動する、再起動、シャットダウンの指示等の手段を提供している。Windowsとしてはエクスプローラーはシェルの中の一つという考えのため、レジストリの書き換えでエクスプローラー以外のシェルを起動することも可能である。
しかし、一般的にWindows XP以前のユーザにとってエクスプローラと言えばフォルダツリーが左側に表示されたフォルダの表示されたウィンドウが表示されるWindowsのファイル管理機能を指すことが多い。そのウィンドウのタイトルが「（フォルダ名） - エクスプローラ」となっていることや、スタートメニューの中にそれを起動させる「エクスプローラ」という項目が存在し、それはExplorer.exeへのショートカットになっているためである(「エクスプローラーで開くか、マイコンピュータから開くか？という質問も出来たほどこの考えは認知されている。ただし、両者とも当然Windows Explorerが動作している。)。
エクスプローラのウィンドウは複数のペイン（小窓）に分割され、通常は左端に表示されるペインはWindows XP以前ではエクスプローラ バーと呼ばれる。フォルダのツリー構造のほか、ファイル検索機能、Internet Explorerの履歴やお気に入りを表示することもできる。

Windows ExplorerとInternet Explorer

Internet Explorerバージョン4.0以降を統合インストールしたWindows 95とWindows 98以降のバージョンから、Internet Explorer 6を搭載したWindows XPまではWindows ExplorerとInternet Explorerが同じようにOLEを使用するので同じ操作を行えるようになっている。具体的には、Windows Explorerのフォルダ表示のウィンドウでURLを入力するとWWWやFTPにアクセスできたり、逆にInternet Explorerで自分のコンピュータのフォルダへのパスを指定してそのフォルダを表示させることもできるのである。
このことから両者は同一のプログラムであると思われることがあるが、両者は依然として別のプログラムである。たとえばタスクバーはWindows Explorerの機能であるため、何らかの原因でWindows Explorerだけが終了しタスクバーが消えたとき、Internet Explorerを起動してもタスクバーは表示されず、Windows Explorerを起動させないとタスクバーは表示されない。このことからWindows ExplorerとInternet Explorerは全く同じものではないことがわかる。
Internet Explorer 7以降ではこの機能は削除され、Windows ExplorerでURLを入力すると「既定のブラウザー」として設定されたウェブブラウザ(Internet ExplorerやMicrosoft_Edgeなど自社製品に限らない)のウィンドウが新たに開き、Internet Explorerでフォルダへのパスを指定するとWindows Explorerのウィンドウが新たに開くようになった。

アクティブ デスクトップ

Windows 95以降にInternet Explorer バージョン4から6を導入することによりアクティブ デスクトップという機能がエクスプローラ に統合される。IE4～6が標準搭載されたWindows 98～XPはアクティブ デスクトップも標準搭載されている。タスクバー内にツールバー（クイック起動、デスクトップなど特定のフォルダの内容が表示される）を追加できたり、デスクトップに任意のWebページを貼り付けたり、Windows bitmap形式以外の画像（JPEG等）やHTMLドキュメントを壁紙として使用できるなどの機能がある。またエクスプローラにIEの「お気に入り」メニューが表示され、エクスプローラ バーにIEのお気に入りや履歴を表示することもできる。
デスクトップとWebの統合という概念はウェブブラウザの不当なシェア独占との兼ね合いで批判の的となった。またセキュリティ面の懸念もあり、クイック起動ツールバーなどを除いては多くの支持を受けたとは言い難い。
Windows Vista以降ではアクティブ デスクトップは削除された。エクスプローラにはIEとは別に管理されるお気に入りが導入された（フォルダへのショートカットを追加できるが、WebページのURLは追加できない）。デスクトップのWeb項目はガジェットに役目を譲り、あまり有効に活用されなかった前者とは違って大幅に機能性が向上した。

Windows 95とWindows NT 4.0

Windows Explorer最初のバージョンである。プログラムマネージャとファイルマネージャを統合した。プログラムマネージャの機能はスタートメニューに、ファイルマネージャの機能はデスクトップに組み込まれ、従来のプログラムとの互換性を有する。NeXTSTEPのシェルをほぼ模倣したデザイン、Mac OSのFinderのような使い勝手を備える。ビル・ゲイツとスティーブ・ジョブズの仲が良く、またゲイツがジョブズの業績を高く評価していた故に実現した。
Windows NT 4.0のWindows ExplorerはWindows 95版と同一のものに、セキュリティ設定機能を追加したもの。複数のユーザーがスタートメニューを共有できるよう、標準状態、全ユーザの設定状態、個別ユーザ毎の設定を保持出来る様に変更。

Windows 98

Windowsネットワークブラウザ機能が追加された。Windows CEが備えるタスクバーでウィンドウの最小化・復元の機能が反映された。ディレクトリのリンクを展開して表示出来る様になった。
Microsoft Plus! for Windows 98をインストールすると圧縮フォルダ機能（エクスプローラでZIPの閲覧・解凍や部分解凍・圧縮ができる）が追加される。Windows 2000以降では圧縮フォルダは標準搭載されている。なおPlus!を導入しなくてもCAB形式の閲覧・解凍は可能。

Windows 2000とWindows Me

検索枠の追加。Windows 2000のWindows Explorerのみ、ビデオファイルやサウンドファイルのプレビューの為のメディアプレーヤが組み込まれている。

拡張性

Windows Explorerは、「Windowsシェル拡張」によって標準では持っていない機能を追加できる。シェル拡張は、エクスプローラに対するプラグインとして機能するCOMオブジェクトである 。
シェル拡張には、次のような形態が存在する: プレビューハンドラ、コンテキストメニューアイテム、ツールバー、シェル名前空間拡張。なお、名前空間拡張とは、特定のフォルダ（ファイルシステム上の存在に限らない、たとえばスキャナーで取り込んだ画像など）を特殊フォルダとして扱うようにする機能である。さらに、エクスプローラには、メタデータをファイル本体とは別にNTFSの代替データストリームに保存する機能が存在する。
プレビューハンドラはファイルからサムネイルの展開を行う。このサムネイルは、ファイルが選択されたりサムネイルビューがアクティブになったときに表示される。プレビューハンドラはファイルタイプ毎に行う必要がある。コンテキストメニューアイテムは特定のファイルの種類、または全ファイルを対象に、あるファイルを選択したときのメニュー（メニューバーのファイルまたは右クリックなどによるコンテキストメニュー）に項目を追加する拡張である。Vistaからシェル拡張の種類にプロパティハンドラが追加された。これは特定のファイルの種類で、ファイルのメタデータを抽出するもので、詳細表示の項目に加えられる。
シェル名前空間拡張は、エクスプローラ上でフォルダ様にデータを表示させたり（取り扱う対象が実在するファイルである必要はない）、あるいは実在するファイルの構成とは異なった表示を行ったりするためのシェル拡張である。「マイ コンピュータ」や「ネットワーク プレース」のような特殊フォルダは、Windowsエクスプローラ自身がシェル名前空間拡張を実装したものである。例えば、バージョン管理システムでは、エクスプローラで各リビジョンを閲覧できるようにするために名前空間拡張を用いているものもある。名前空間拡張を提供するには、IPersistFolder、IShellView、IShellFolder、IShellBrowser、IOleWindow などといったCOMインタフェースを実装する必要がある。これらは、表示させようとするデータに対して、フォルダとしての操作のロジックを提供するために必要とされる。そして、Windowsエクスプローラは必要に応じてこれらを実装したCOMオブジェクトを実体化（インスタンスを生成）する。
WindowsエクスプローラはCOMインタフェースを拡張を行う起点として扱っているため、.NET FrameworkでもCOM Interopを用いてシェル拡張の作成が可能である。マイクロソフト自身も「Photo Info tool」のような.NET Framework上で動作するシェル拡張を作成している。それにもかかわらず、現在、.NET Frameworkを用いてのシェル拡張の作成は推奨されていない。これは、1つのプロセス内で実行できるCLRは1つのバージョンのみという制限にちなむ。同時に読み込まれる複数のシェル拡張が別々のバージョンのCLRを用いる、CLRバージョンの衝突が引き起こされてしまうためである。