エクスプローラーで、「表示」→「表示」→「プレビューウィンドウ」を選択するか、「Alt+P」を押すと、ウィンドウ右側にプレビューウィンドウが表示される。この部分は、ファイルに対して定義された「プレビューハンドラ(Preview Handler)」が表示をする。今回は、このプレビューウィンドウとプレビューハンドラについて解説する。

Windows 11のエクスプローラーの「プレビューウィンドウ」または「Alt+P」で、ウィンドウ右側にプレビューウィンドウが開く。ここには、左側のファイルウィンドウで選択したファイルの内容が表示される
なお、詳細は後述するが、PowerToysをインストールしている場合、プレビューハンドラが追加で登録され標準とは異なる状態になる。原稿執筆時点の最新版である「v0.69.0」では、不具合があってテキスト型式のプレビューが表示されないことがある。以下の内容を試すときには、PowerToysの「File Explorer add-ons」にある「ソースコードファイル(モナコ)」をオフにしておいてほしい。
プレビューハンドラとは?
プレビューハンドラは、ファイルの拡張子に対して定義される。テキストや画像など、Windows標準のものがあるが、サードパーティアプリケーションのファイル形式に関しては、アプリケーション側で用意する必要がある。プレビューハンドラは、エクスプローラーが呼び出すモジュールになっていて、一定の仕様で作ることでサードパーティでも開発が可能だ。詳細は以下で説明されている。
●プレビュー ハンドラーとシェル プレビュー ホスト
https://learn.microsoft.com/ja-jp/windows/win32/shell/preview-handlers
プレビューハンドラは、レジストリの以下のキーに登録されている。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PreviewHandlers
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers
HKEY_LOCAL_MACHINE(以下、HKLM)に登録されているのは、システム標準のプレビューハンドラで、HKEY_CURRENT_USER(以下、HKCU)に登録されているのはユーザーごとに登録されたプレビューハンドラで、こちらはHKLMとの差分になっている。
ここに登録されているプレビューハンドラに対応するGUIDを、HKEY_CLASSES_ROOT(以下、HKCR)にあるファイル拡張子に登録することで、ファイル形式に対して、プレビューハンドラが対応する。具体的には、拡張子のキーの下にある「HKCR\<拡張子>\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}」が、プレビューハンドラの指定となり、このキーの既定値にプレビューハンドラのGUIDが登録されている。
具体的に見てみよう、Excelのブックファイルの拡張子「.xlsx」のレジストリ登録は、「HKCR/.xlsx」にある。レジストリエディタで「HKEY_CLASSES_ROOT\.xlsx」を開くか、PowerShellのコマンドで、
Get-ChildItem -Path "Registry::HKEY_CLASSES_ROOT\.xlsx\ShellEx\"
とすると、ShellExサブキーの下を見ることができる。

Excelのブックファイル(.xlsx)のプレビューハンドラを調べるには、「HKEY_CLASSES_ROOT\.xlsx\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}」の既定値を調べる。ここに記述されているGUIDをHKEY_CLASSES_ROOT\CLSIDの下で探せば、それがファイルのプレビューハンドラである
「{8895b1c6-b41f-4c1c-a562-0d564250836f}」サブキーの既定値は、「{00020827-0000-0000-C000-000000000046}」となっており、HKCR\CLSIDの下を探せば、
Get-Item -Path "Registry::HKEY_CLASSES_ROOT\CLSID\{00020827-0000-0000-C000-000000000046}"
これが“Microsoft Excel previewer”であるとわかる。
テキストファイル形式の簡易なプレビューハンドラ指定
もう1つ、中身がテキストファイルになっているファイル形式の場合、簡易な方法で、Windowsに組み込まれたテキスト・プレビューハンドラを指定できる。それは、前述の「HKCR\<拡張子>」のキーに文字列値として「PerceivedType」を定義し、データとして「text」を指定する。これで、どんな拡張子でもプレビューウィンドウにテキスト型式で表示できるようになる。XMLなど、中身がテキスト型式になっているファイルは結構ある。この方法を使うと、簡単な方法で、ファイルのプレビューが可能になる。
ただし、前述の「ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}」に、プレビューハンドラが登録されていると、そちらが優先される。
実際にテストしてみることにしよう。拡張子「.ps1」は、PowerShellのスクリプトファイルの拡張子だ。標準では、このファイルは、プレビューが表示されない(PowerToysでプレビューハンドラを使っていないとき)。
キー:HKEY_CLASSES_ROOT\.ps1
名前:PerceivedType
種類:REG_SZ
データ:text
というレジストリエントリを、レジストリエディタまたは、PowerShellで以下のコマンドを実行して書き込む。
Set-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\.ps1" -Name "PerceivedType" -Value "text"

拡張子のレジストリエントリに「PerceivedType」という名前の文字列(REG_SZ)値を定義し、データを「text」とすると、Windowsの標準テキスト・プレビューハンドラでファイル内容が表示されるようになる。中身がテキストファイルになっている拡張子で簡単にプレビューハンドラを指定できる
確認は、以下のコマンドでできる。
Get-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\.ps1"
これで、「.ps1」ファイルのプレビューが表示されるようになる。なお、設定を削除するには、
remove-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\.ps1" -Name "PerceivedType"
とする。

この連載の記事
-
第474回
PC
Windowsでのコマンドラインのヒストリ機能 -
第473回
PC
Windowsは内部的にどうやってインターネットへの接続状態を確認している? -
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? - この連載の一覧へ