このページの本文へ

前へ 1 2 次へ

Windows Info 第375回

エクスプローラーのプレビューウィンドウについて解説する

2023年04月16日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 エクスプローラーで、「表示」→「表示」→「プレビューウィンドウ」を選択するか、「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"

とする。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン