概要

MkImgPageはInternet Explorer6/7(IE)用のアドインです。

IEのツールメニューに「MkImgPage (画像一覧の作成)」というメニューが追加されます。

このアドインは、IEで表示しているページ上の画像、または画像へのリンクを抽出し、その画像を並べた一覧ページを作成・表示します。

表示されている画像は「名前をつけて保存」の「Webページ、完全(*.htm;*.html)」を指定してローカルディスクに保存することにより、表示している画像一覧を一括してフォルダに保存することができるようになります。

MkImgPageはダウンロードツール(サイトリッパー)のようなものではありません。

画像一覧ページにまとめるための、ちょっとした小道具となるように作られています。

特徴

  • 表示されている画像をフィルタすることができます。
    • 画像が完全に表示されているならば、表示されている画像のサイズをもとにフィルタリングすることができます。小さなアイコンなどは除外することができます。
    • 画像のソース元となるURLを限定してフィルタリングすることができます。
  • 画像へのリンクから画像を表示させることができます。
    • 画像のソース元となるURLを指定してフィルタリングすることができます。関連する画像は同じフォルダ下にある場合が多いため、適切なURLを指定すれば、余計な画像を読み込むことはありません。
    • 表示されていない画像はサイズが不明なため、サイズでフィルタリングすることはできません。しかし、MkImgPageで画像へのリンクを画像として表示すれば、もう一度、MkImgPageを適用することで、サイズでフィルタリングすることができます。
  • ページへのリンクをインナーフレームとして表示させることができます。
    • 画像そのものへのリンクではなく、画像を表示するページへのリンクである場合、それらのページを1つのページ内にインナーフレームとして表示させることができます。
    • MkImgPageは、すべてのフレームの画像やリンクを調べることができるため、もう一度、MkImgPageを適用することで、インナーフレームで表示されている画像も一覧対象にすることができます。
    • ただし、インナーフレームはマシンに多大な負担をかけることに注意してください。必要最小限のインナーフレームを開くために、URLによるフィルタリングを適切に行う必要があります。

使い方

使い方についての、もう少し詳しい説明はプロジェクトホームの「MkImgPageの使い方」ページで説明しています。

制約事項

  • MkImgPageは現在表示されているページの内容から画像(IMGタグ)と画像へのリンク(Aタグのhref)などを抽出するものです。したがって、
    • 画面に表示されていないもの、たとえばJavaScriptを使ったユーザアクションによって動的に画像を表示/切替するものは抽出できません。
    • オブジェクト(Object/Embed)として表示されている画像は抽出できません。
    • 実行するたびに表示内容が変わるような、CGIなどによる動的なページも抽出結果が意図しないものになる可能性があります。
  • MkImgPageは、抽出した画像へのリンクはローカルディスクの一時ディレクトリに静的なページとして作成され、それをブラウザで表示します。したがって、
    • ページのリファラが必要なページは正しく表示できません。
    • 認証やクッキーが必要なページは正しく表示できません。
    ローカルディスク上にMkImgPageが作成したページは、実際のサイトとは異なるサイトとして認識されるため、認証情報やクッキーを引き継ぐことができません。そのためサーバ側で正しくないリクエストとして拒否されます。
  • 生成したページに数十以上のインナーフレームが生成されたり、あるいは百個以上の大きな画像が貼り付けられている場合、マシンとネットワークに対する負荷が非常に高まるため、注意してください。
    • 大量のiframeはCPU負荷が100%近くなりユーザ入力を受け付けない状況になる可能性があります。(アニメーションGIFや、そのほかの動画オブジェクトがある場合は特に負荷が高まります。)
    • 複数のiframeで一度に多くのページを表示しようとするため、サーバによっては表示が拒否、あるいは出入り禁止にされる可能性があります。無闇に沢山のページを開くとサイトに負荷をかける迷惑行為とみなされる可能性が高いので注意してください。(ただし、ブラウザが使用する同時コネクション数を超えることはありません。画像やiframeの個数に関わらずサーバへの負荷は限定的です。)
    • 大量の画像やiframeを表示するのに時間がかかるとブラウザは全ての表示を完了せずに諦める可能性があります。(ただし、その場合でも、IE6/7は、ファイルメニューから「完全保存」を選択した場合には、すべてをダウンロードしようと試みます。)
  • 生成されたページは一時ディレクトリ上にある、一時ファイルです。
    • 保存が必要な場合は、手動でブラウザのファイルメニューより保存してください。
    • Windows Vistaでは表示するURLのゾーンによって保護モードがかわります。 表示しているゾーンとローカルファイルのゾーンが異なる場合、MkImgPageを起動したブラウザとは異なるブラウザ画面が開き、扱うファイル位置もかわっていることに注意してください。

※ 十分に高速でメモリにも余裕のあるマシンと高速な回線で利用されることをお勧めします。

※ 絞り込みに至るまではインターネットエクスプローラの詳細オプションで画像の表示などを一時的にoffにしておくのもよいかもしれません。

※ ブラウザのキャッシュを有効に活用してください。目視で画像を確認したあとでMkImgPageで画像をまとめるような使い方がサーバにも親切です。

動作環境

以下の環境での動作が想定されています。

OS

以下のいずれかのOSで動作します。

  • Windows 2000 Professional (Service Pack4以降)
  • Windows XP Professional (Service Pack2以降)
  • Windows XP Home (Service Pack2以降)
  • Windows Vista ※ Ultimate RC2でのテストのみ

Internet Explorer (IE)

MkImgPageはIEのアドインであるため、当然、IEが必要です。

以下の、いずれかのバージョンで動作します。

  • Internet Explorer 6
  • Internet Explorer 7
  • Internet Explorer 7+ (Vista)

追加のコンポーネント

  • Windows Installer 3.0
  • ActiveScriptHost(VBS) ※ Windows2000以降ならば意図的に削除していないかぎり存在します。

msiインストーラを用いる場合、実行時にWindows2000/XP/Vistaのいずれかであり、且つ、IEが6または7であることがチェックされ、 該当しない場合はインストールは中断されます。

ライセンスと使用許諾条件

本アプリケーションは、フリーウェアです。GNU General Public License Version 2(GNU GPL v2)に従います。

誰でも自由に無償で利用いただくことができます。再配布の制限はありません。

ただし、本アプリケーションを修正した場合には修正されたアプリケーションも同じ条件(GPLv2)にしたがってください。

本アプリケーションは完全に無保証です。本アプリケーションを使用した、いかなる結果についても作者および再配布者は責任を負いません。

最終利用者自身の責任の範囲においてご利用ください。

MkImgPageの著作権はseraphyにあります。

インストールとアンインストール

MkImgPageセットアップファイルの入手

SourceForge.jpのmkimgpageプロジェクトのリリースファイルから、最新のセットアップファイルを取得します。

セットアップファイルのファイル名は「MkImgPageSetup.msi」となっています。

Windows Installerの準備

MkImgPageのセットアップファイルはWindows標準のmsiファイルです。

インストーラを実行するためには、Windows Installer 3.0が必要です。Windows Updateもしくはマイクロソフトのサイトからダウンロードしてください。

インストール

以前のバージョンをインストールしていた場合は、先にアンインストールしてください。旧バージョンが残っているとIEが正しくMkImgPageをロードできず、アプリケーションエラーが発生する可能性があります。

セットアップを実行することでインストール、アンインストールを実行できます。

セットアップでは、Internet ExplorerからMkImgPageのアドインを接続するための情報をレジストリに書きこみます。このため、システム管理者でなければインストールすることはできません。

どのようなファイルがインストールされ、どのようにレジストリを追加・変更するのかは、後述の技術情報を参照してください。

正しくインストールされると、IEのツールメニューに「MkImgPage (画像一覧の作成)」というメニューが追加されます。

アンインストール

アンインストールする場合、コントロールパネルの「アプリケーションの追加と削除」(この名称はOSによって若干異なります。)から通常のアプリケーションと同様にアンインストーラを起動できます。

技術情報

カスタマイズやインストール後のトラブルを解析するために必要となるかもしれない、いくつかの技術情報について記述します。

インストールされるファイル

インストールすると、インストール先として指定したディレクトリに以下のファイルが作成されます。

これらのファイルはアンインストールすることで削除されます。

ファイル名 役割
readme.html MkImgPageの説明ドキュメントです。
MkImgPage.dll このアドインの本体で、1つのCOMオブジェクトとしてレジストリに登録されます。
NameAcceptor.dll MkImgPage.dllにリンクされるライブラリです。
(レジストリは用いません。)
TemplateEvaluater.dll MkImgPageが生成するHTMLファイルを作成するためのテンプレートエンジン用ライブラリです。
(レジストリは用いません。)
template.html MkImgPageが生成するHTMLページのひな形です。
VBSを混在させて動的にページを生成します。

MkImgPageは、Vistal Studio 2005を用いたC++で記述されています。ATLを使用してます。

ATLとCランタイムライブラリはスタティックリンクされており、ATL、CランタイムのDLLは必要ありません。

インストールされるレジストリ情報

MkImgPageがIEのアドインとして認識されるためには、MkImgPageがCOMオブジェクトであり、そのCOMオブジェクトを参照するためのIEの設定がレジストリ上に必要となります。

具体的には、以下のようなレジストリ項目となります。

[HKEY_CLASSES_ROOT\CLSID\{F58992D2-6DD8-4055-80A7-764B638935BA}]
@="MkImgPage IEExtension Class"

[HKEY_CLASSES_ROOT\CLSID\{F58992D2-6DD8-4055-80A7-764B638935BA}\InprocServer32]
@="C:\\Program Files\\seraphyware\\mkimgpage\\MkImgPage.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{445AF7F9-A046-46b3-8BE9-A9103C704351}]
"CLSID"="{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}"
"ClsidExtension"="{F58992D2-6DD8-4055-80A7-764B638935BA}"
"MenuCustomize"="Tool"
"MenuStatusBar"="画像、HTMLページへのリンク、または画像の一覧を作成します。"
"MenuText"="MkImgPage(画像一覧の作成)"

MkImgPage.dllはセルフレジストラとなっており、regsvr32.exeツールによって登録・解除も可能です。

その場合、上記の項目が設定されます。(モジュール位置は、そのDLLが存在するパスとなります。)

手作業でインストール・アンインストールする場合、このレジストリ項目を設定/削除してください。

なお、インストーラを使う場合はセルフレジストラではなく、Windows Installerがレジストリの設定/解除を行います。

設定ファイル

MkImgPageはダイアログで設定した各種設定項目をファイルに保存します。(ただし、URL制限の内容とタイトルは保存されません。)

設定ファイルはユーザごとに独立していますが、履歴などのプライバシーに関する情報は保存されていません。

設定ファイルの格納場所

ファイルは、各ユーザプロファイルのローカルのアプリケーションデータ領域に作成された「mkimgpage」というフォルダの下にあります。

現在のところ、設定ファイルは「mkimgpage.ini」1つだけです。

Windows 2000/XPであれば、一般的には、以下のような位置にあるでしょう。

C:\Documents and Settings\USERNAME\Local Settings\Application Data\MkImgPage\MkImgPage.ini

Windows Vistaの場合、このファイル位置はブラウザが保護モードで開いているか否かによって異なるフォルダに隔離される可能性があります。(つまり、設定ファイルが複数できる可能性があります。Vista RC2では、保護モード時にはLowディレクトリに隔離されます。)

この設定ファイルはMkImgPageをアンインストールしても自動的には削除されません。

ダイアログ以外の設定情報

設定ファイルは設定ダイアログの内容を保持していますが、設定ダイアログで設定されない以下の設定値を持っています。

キー
MAX_IFRAME iframeの個数が、この設定値を超えて抽出された場合に警告ダイアログを表示します。デフォルト値は20です。

ダイアログに表示される初期値はMkImgPageのリソースファイルに含まれています。

ダイアログ設定情報のリセット

ダイアログボックスのリセットボタンは、設定値をダイアログを表示する前の状態に戻します。

リセットボタンを「シフトキー」と共に押下することで、MkImgPageの初期値をダイアログに設定できます。(実際に使用するまで保存されません。)

作業/出力先ディレクトリ

MkImgPageは一時ディレクトリ上に静的なHTMLファイルを生成します。

このディレクトリは、いわゆるテンポラリディレクトリ(環境変数TMPで参照される場所です。)で、一般にはユーザごとに独立したユーザープロファイルの下にあります。

ただし、Windows Vistaの場合、このファイル位置はブラウザが保護モードで開いているか否かによって異なるフォルダに隔離される可能性があります。(Vista RC2では、Lowディレクトリに隔離されます。)

生成されたページはMkImgPageが終了するときに削除が試行されます。

MkImgPageを使ったブラウザウィンドウ(あるいはタブ)を閉じるとMkImgPageの終了となります。(また、IEがMkImgPageをアンロードすべきと判断したときにも終了します。)

IEとMkImgPageが正常終了し、且つ、そのファイルが他のプロセスにロックされているなどの状態でなければ、これらのファイルは削除されます。

IEやMkImgPageがクラッシュした場合や、生成したファイルを別のプロセス(たとえばエクスプローラのサムネイル表示機能など)がロックしている場合は、消されずに残されるので、その場合、手動で削除するかディスククリーンナップツール(cleanmgr.exe)を使って削除してください。

(生成したページをローカルに保存したい場合はブラウザのファイルメニューから通常どおりの方法で保存してください。)

テンプレート

MkImgPageがローカル上に生成するHTMLは、「template.html」をテンプレートとしてVBSによって生成されます。

このテンプレートを修正することでMkImgPageが生成するHTMLのデザインを変更できます。

(※ ただし、インストーラでインストールした場合、このテンプレートは実装の一部であり、修復セットアップにより上書きされることに注意してください。)

構文はASP/JSPライクです。

ファイルのエンコーディングはShift_JISでなければなりません。

テンプレートは <% ~ %> で囲まれた部分をVBScriptとして解釈し、それ以外は出力される文字列として解釈します。

<%= ~ %>は、式の評価結果を出力することを意味します。

MkImgPageが抽出したリンクやドキュメント情報、設定の一部はextオブジェクトのプロパティとして格納されています。

extオブジェクトのプロパティ

プロパティ 内容
img IMGタグのsrc属性として出力するURLのコレクションです。
iframe IFrameタグのsrc属性として出力するURLのコレクションです。
anchor aタグのhref属性として出力するURLのコレクションです。
document 抽出元となったHTMLドキュメントのdocumentオブジェクトです。
config 設定ダイアログで指定したパラメータが格納されています。

コレクションオブジェクト

コレクションオブジェクトは、lengthプロパティとitemメソッドをもっています。

  • itemメソッドの引数にキーを渡すと、そのキーに結び付けられた値が取得されます。
  • lengthプロパティには格納されているアイテムの個数が格納されています。
  • VBScriptのfor each構文で、格納されている、すべてのキーを列挙できます。

テンプレートの仕組みは実装の都合により変更されるかもしれません。