Delphi Programming / Object Pascal
[掲載 2016年07月14日] [更新 2016年10月02日] Delphi 一般・その他 [未分類 - OS の操作等]
Windows フォトビューアーで画像を表示
動作確認等
Windows 10 ビルド 10586 64 ビット版
Windows 10 の Windows フォトビューアー
本ページは,Windows 10 で,写真等の JPEG (ジェイペグ) 画像を [Windows フォトビューアー] で表示する方法についての記事です.手順としては以下のようになります.
(1) 画像ファイルと Windows フォトビューアーの関連付けを行う
(2) 画像ファイルを開く既定のプログラムを Windows フォトビューアーにする
Windows 10 では,写真等の JPEG 画像ファイルをダブルクリックすると,フォト (Microsoft フォト) というアプリで画像を表示するようになっています.Windows 10 をクリーンインストールした直後の環境では,Windows 7 時代に利用できた [Windows フォトビューアー]
が利用できません.
下の最初の画像は JPEG 画像ファイルをダブルクリックした時の結果です.Windows 10 で実装された [フォト] というアプリで画像が表示されています.その次の画像は,TIF 画像ファイルをダブルクリックした時の結果ですが [Windows フォトビューアー] で画像が表示されています.
このことは,クリーンインストールした Windows 10 でも [Windows フォトビューアー] が使用可能であることを意味しています.したがって,写真等の JPEG 画像も [Windows フォトビューアー] で表示するように設定すればいいことになります.
[備考 2]
Windows フォトビューアーと同じような操作性を望む場合,Windows Vista 時代のフォトギャラリーを利用することも考えてもいいかも知れません.
図1
JPEG 画像をダブルクリック
図2
TIF 画像をダブルクリック
[Windows フォトビューアー] で表示される
Windows 10 にも フォトビューアーがあることを意味している
TIF 画像は [Windows フォトビューアー] で表示するわけです.そこで,TIF 画像を表示するコマンドのパス名を調べてみました.
以下のコマンドを使用しました.
Windows の場合,アプリケーションを実行するファイルは EXE (エクゼ) という拡張子のファイルです.この図の結果を見ると,フォトビューアーにはこの EXE (エグゼ) というファイルがありません.図の中に dll (ディーエルエル) というのがあります.フォトビューアーはこの dll が内部で実行する仕組みになっています.
つまり,Windows フオトビューアーというプログラムファイルそのものは存在しまぜん.
assoc .tif 拡張子が .tif のファイルタイプ名を調べる
ftype XXXX XXXX と言うファイルタイプが使用しているコマンドパスを調べる
図3
TIF 画像を表示 (開く) プログラムを調べる
[備考]
上の画像は,コマンドプロンプトと呼ばれているプログラムの実行画面です.コマンドプロンプトは,システムの設定等のコマンドを実行する時に利用されています.起動方法は次項で説明しています.コマンドプロンプトでは文字 (テキスト) だけが表示できます.画像は表示できません.
Windows PowerShell (通称 : PowerShell) でも同様の操作ができます.
02_ ファイルタイプの関連付けを行う - 写真等の JPEG 画像
TIF 画像を表示するプログラムのパス名が分かりました.このパス名が [Windows フォトビューアー] ということになります.JPEG 画像も同じプログラムに関連付けの設定をします.
コマンドプロンプトまたは Windows PowerShell (PowerShell) を管理者権限で起動します.起動したら次のコマンドを実行します.タイプミスを防ぐ意味でも,下のコマンドの文字列をコピーして貼り付けてください.
これで関連付けは終了です.ただし,Windows 10 の場合,JPEG 画像ファイルは,この関連付けをしてもすぐに Windows フォトビューアーで表示できません.本ページの以下で説明している操作でフォトビューアーを既定のプログラムにする作業が必要です.
copy code
ftype jpegfile=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
[備考]
上のコマンドの文字列をコピーするには,まず文字列を選択します.文字列の適当な場所でダブルクリックを繰り返すと文字列全体を選択状態にすることができます.その状態にすると [Ctrl] + [C] のキー操作でコピーできます.
前項の図をみると,Windows フォトビューアーのパス名には %SystemRoot%\System32\ という部分があります.これはシステムフォルダを意味しています.システムフォルダは省略可能なので省略しています.もちろんあっても構いません.
図4
コマンドプロンプトを管理者権限で起動
左下の [スタートボタン] でマウスの右ボタンをクリック
[コマンドプロンプト (管理者)(A)] をクリック
[ユーザアカウント制御] ダイアログで [はい] をクリック
図5
コマンド貼り付け
[Ctrl] + [V] で貼り付け可能
またはマウスの右ボタンクリックで現れるメニューで [貼り付け] をクリック
コマンドを貼り付けたら [Enter]
コマンド文字列が 2 回表示されている
1 つ目は入力値.2 つ目は実行結果として表示されたもの
03_ ファイルタイプの関連付けを行う - JPEG 以外の画像
JPEG (ジェイペグ) 以外の他のタイプの画像ファイルも,[Windows フォトビューアー] に関連付けすることができます.以下のように,ファイルタイプに応じたコマンドを実行します.ファイルタイプ名以外は JPEG 画像ファイルの場合と全く同じです.
上から順番に,上で説明した JPEG 画像ファイル用
,PNG 画像,GIF 画像,アイコン画像,ビットマップ画像ファイル用です.
関連付けしても, 画像ファイルの種類によっては,本ページの以下で説明している操作でフォトビューアーを既定のプログラムにする作業が必要です.
copy code
ftype jpegfile=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
ftype pngfile=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
ftype giffile=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
ftype icofile=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
ftype Paint.picture=rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
複数の画像ファイルの関連付けをまとめて設定したい場合は,上のコードを全て選択してコピーし,コマンドプロンプトに貼り付けて実行します.
04_ バッチファイルを作成して複数のファイルタイプを関連付け
複数の画像ファイルの関連付けをまとめて設定するには,バッチファイル (コマンドファイル) を作成して実行する方法もあります.テキストファイルを新規に作成して (あるいはメモ帳を起動して),下のコマンドのテキストをコピーして貼り付けます.
ファイルの名前は任意ですが,拡張子を .bat あるいは .cmd にして保存します.そして,そのバッチファイル (コマンドファイル) を実行します.コマンドプロンプトを管理者権限で起動して実行する方法と,バッチファイル (コマンドファイル) の,マウス右ボタンクリックのメニューから [管理者として実行] で実行する方法があります.
下図は実際の実行結果です.ここではファイル名を photoview.cmd として C:\000 というフォルダに保存しています.コマンド文字列は上記と同じですが,%1 の前に % を追加しています.%1 はコマンドラインの引数を意味します.%1 そのものをコマンドラインに認識させるために必要です.
コマンドファイル photoview.cmd
の中身
copy code
echo off
set apppath="%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %%1
ftype jpegfile=rundll32.exe %apppath%
ftype pngfile=rundll32.exe %apppath%
ftype giffile=rundll32.exe %apppath%
ftype icofile=rundll32.exe %apppath%
ftype Paint.picture=rundll32.exe %apppath%
関連付けしても,
画像ファイルの種類によっては,本ページの以下で説明している操作でフォトビューアーを既定のプログラムにする作業が必要です.
[備考]
画像の種類は上記以外にもありますが,全ての種類の画像が Windows フォトビューアーで表示できるわけではありません.
図6
複数の画像タイプの関連付けをまとめて設定
コマンドプロンプトは管理者権限で起動する (前項の説明参照)
図7
photoview.cmd を直接実行
コマンドプロンプトを起動しないで,[管理者として実行] で実行してもよい
ただし何も表示されないで設定が終了する
05_ Windows フォトビューアーを既定のプログラムにする
ファイルタイプの関連付けをしても,画像ファイルが [Windows フォトビューアー] で表示できるとは限りません.
まず,画僧ファイルの上でマウスの右ボタンをクリックします.メニューの [プログラムから開く] から [別のプログラムを選択] をクリックしてダイアログを表示します.
[備考]
クリーンインストールした Windows 10 では,前項までの説明にしたがって関連付けをしないと,[プログラムから開く] のメニューに [Windows フォトビューアー] は表示されません.
図8
メニュー操作
画像ファイルの上でマウスの右ボタンをクリック
[プログラムから開く] にマウスを移動すると,サブメニューが現れる
ダイアログで [Windows フォトビューアー] をクリックして,[常にこのアプリを使って JPG ファイルを開く] をチェックします.[OK] ボタンクリックでダイアログを閉じれば設定完了です.
図9
開くプログラムの選択
[Windows フォトビューアー] をクリック
[常にこのアプリを使って JPG ファイルを開く] をクリック
[OK] ボタンをクリックすれば設定終了
キャンセルしたい場合,このダイアログは [ESC] キーで閉じることができる
下図が実際に表示,つまり開いた結果です.
[Windows フォトビューアー] で表示されているのが確認できます.
図10
設定後の JPEG 画像表示
スライドショーの開始は [F11] でも可能
スライドショーの一時停止は [Space] キー
一時停止からの再開も [Space] キー
停止中でも矢印キーでの移動可能
[備考]
Windows フォトビューアーの [ファイル] メニューの [コピー] は,画像ファイルのコピーです.ここでコピーしても,他のアプリに画像を貼り付けることはできません.一般的なクリップボードへの [コピー] は通常 [編集] メニューにあります.
ただし,Microsoft Word 2010 には貼り付けができます.これは Microsoft Word 2010 が,ファイルからの貼り付けが可能になっているためと思われます.
関連付けを解除しなくても,前項の手順で [既定のプログラム] を変更すれば,その種類の画像はいつでも既定のプログラムで表示できますが,写真などの JPEG ファイルとプログラムの関連付けを解除するには,以下のコマンドを実行します.
コマンドプロンプトは管理者権限で起動します.
関連付けを解除すると,[プログラムから開く] のプログラムのリストから [Windows フォトビューアー] の項目がなくなります.
ftype jpegfile= = の後に何も指定しない
図11
関連付けの解除
関連付けを解除したファイルに対して,再度関連付けの解除を実行しても無効
関連付けを削除した後に,画像ファイルを開こうとすると,画像ファイルのタイプによっては,下図のようなエラーが発生することがあります.この場合は,前項の説明の方法で [プログラムから開く] で既定のプログラムを設定します.
指定されたファイルに対してこの操作を行うプログラムが関連付けられていません。プログラムをインストールするか、既にプログラムがインストールされている場合はコントロール パネルの [既定のプログラム] でプログラムを関連付けてください。
図12
関連付けの解除の結果
ネット上に掲載されている記事は,この記事を掲載した 2016年07月14日の時点では,ほとんど全てと言っていいぐらいレジストリに値を直接書き込む方法の記事のようです.本ページの説明を読んだ方は違和感を感じたかも知れません.
筆者は度胸も勇気もありませんので,記号の羅列をレジストリに記録する方法は確認していません (この記号の羅列は文字列に変換されてレジストリに記録されます).
本ページのコマンドで画像ファイルの種類 (タイプ) の関連付けをすると,設定したパス名の文字列がそのままレジストリに記録されます.後はシステムが必要な場所に必要な設定をしてくれます.
一方,直接レジストリに値を書き込む場合は,本来システムが設定してくれる内容もレジストリに書き込む必要があります.
08_ コマンドプロンプトからフォトビューアーを起動
実用的とは言えませんが,フォトビューアーは,コマンドプロンプトからも起動できます.
上の方の [Windows フォトビューアーの実体] の記事で,Windows フォトヒューアーのパス名を調べました.その結果は以下のようになっていました.これをそのままコマンドとして,コマンドプロンプトで実行すれば Windows フォトビューアーが起動します.
コマンドの文字列をコマンドプロンプトの画面に貼り付ける方法は,本ページの [ファイルタイプの関連付けを行う - 写真等の JPEG 画像ファイル] の説明にあります.
rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
末尾の %1 は,エクスプローラから起動する時のファイル名を意味しています.そこで,この %1 を省略して起動した結果が下図の最初の図です.確かに Windows フォトビューアーが起動しています.もちろん,画像ファイルの指定がないので,画像は表示されません.
その下の図は,画像ファイル名を指定して起動しています.画像が表示されています.ここで指定した画像のファイル名は C:\000\EARTH.jpg という JPEG 画像です.もし,画像ファイルのパス名に空白文字がある場合は,パス名全体を " (ダブルクォーテーション) で括る必要があります.
ファイル名はエクスプローラからドラッグ & ドロップで入力することができます.この時,空白があるパス名は自動で " (ダブルクォーテーション) が付きます.ただし,コマンドプロンプトを管理者権限で起動している場合は,この機能は利用できません.
コマンドプロンプトから Windows フォトビューアーを起動する時は,ファイルタイプの関連付けは必要ありません.既定のプログラムの設定も必要ありません.
[備考 1]
Windows フォトビューアーと画像ファイルの関連付けをして,既定のプログラムの設定をしていれば,画像ファイル名の入力だけで Windows フォトビューアーで画像を表示できます.
[備考 2]
コマンドプロンプトの画面に画像は表示できません.コマンドプロンプトのウィンドウに表示できるのはテキストだけ,つまり文字だけです.
図13
画像ファイルの指定なし
図14
画像ファイルの指定あり
09_ [ ファイル名を指定して実行 ] でフォトビューアーを起動
これも実用的とは言えませんが,フォトビューアーは,[ファイル名を指定して実行] のダイアログからも起動できます.操作方法は,コマンドプロンプトから起動する場合と同じです.
[ファイル名を指定して実行] のダイアログにも,エクスプローラからドラッグ & ドロップで画像ファイルのパス名をセットできます.
[ファイル名を指定して実行] のダイアログから起動する時も,ファイルタイプの関連付けは必要ありません.既定のプログラムの設定も必要ありません.
[備考]
Windows フォトビューアーと画像ファイルの関連付けをして,既定のプログラムの設定をしていれば,画像ファイル名の入力だけで Windows フォトビューアーで画僧を表示できます.
図15
画像ファイルのパス名をドラッグ & ドロップ
10_ Windows フォトビューアーのショートカットの作成
デスクトップ等に Windows フォトビューアーのショートを作成する方法は,他のコマンドのショートカットを作成する方法と同じです.違うのはコマンドの文字列です.
Windows フォトビューアーの場合は,既に説明したように,以下となります.
エクスプローラから画像ファイルをドラッグ & ドロップして,ショートカットから起動する時も,ファイルタイプの関連付けは必要ありません.既定のプログラムの設定も必要ありません.
copy code
rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen
Windows フォトビューアーのアイコンは以下の DLL 内にあります.筆者の環境では,この DLL 内に3 つのアイコン画像がありますが,ショートカットのアイコンとして使用可能なのは 1 つだけです.
imageres.dll 内にも使えそうなアイコンがあります.
copy code
%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll
図16
ショートカットから画像を表示