1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

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

ASCII.jp / 2023年4月16日 10時0分

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

とする。

PowerToysのFile Explorer add-ons

 PowerToysをインストールすると、SVGやマークダウンなどのプレビューハンドラが登録される。「設定」→「File Explorer add-ons」にある「ソースコードファイル(モナコ)」は、プログラムのソースコードに対応した複数の拡張子に対して、専用のプレビューハンドラを割り当てる。

 このPowerToys「ソースコードファイル(モナコ)」のプレビューハンドラは、「.xml」や「.c」といったソースコードのほか、「.txt」や「.log」といった拡張子にもプレビューハンドラとして登録される。このとき、プレビューウィンドウに表示されるテキストには行番号がつく。Windowsの標準のテキスト・プレビューハンドラではつかない。

PowerToysに付属の「ソースコードファイル(モナコ)」プレビューハンドラは、プログラムのソースコード表示用で、行番号やキーワードの色分け機能がある。モノクロで行番号がつかない場合には、Windowsの標準テキスト・プレビューハンドラが表示をしている

 筆者の環境では、原稿執筆時点の最新版であるPowerToys v0.69.0では、「ソースコードファイル(モナコ)」を有効にしていると、テキストファイルのプレビューができなかった。1つ前のv0.68.0ではできる。もし、テキストファイルのプレビューが表示されないようなら、PowerToysで「設定」→「File Explorer add-ons」→「ソースコードファイル(モナコ)」をオフにする。

 この「ソースコードファイル(モナコ)」では、対象となる拡張子のレジストリキー下に「ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}」を付ける方法でプレビューハンドラを指定している。PowerShellの設定で「ソースコードファイル(モナコ)」をオンにすると、複数の拡張子に「ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}」が追加され、プレビューハンドラとして「{D8034CFA-F34B-41FE-AD45-62FCBB52A6DA}」が指定される。

PowerToysの「設定」→「File Explorer add-ons」→「ソースコードファイル(モナコ)」がオンになっていると、「.txt」や「.xml」といった各種ソースコードファイルの拡張子に対して、独自のプレビューンドラが定義される

 PowerToysは、いまだにプレビュー版であり、不具合が生じることもある。このため、今回のような問題にはユーザーが対処する必要がある。心配ならば、不要な機能はすべてオフにしておいて、使いたい機能だけを有効にすればいいだろう。また、何か不具合を感じたとき、とりあえずPowerToysを終了させてみるというのも1つの方法だろう。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください