不本意ながら仕事の関係で通常 Internet Explorer (IE) を使っているのですが、 こいつに Google ツールバーというのが あり愛用しています。 一方、Namazu も愛用しており、 徘徊した中で、「あっこれは貴重な情報だ。とっとこ」と思ったページは拙作の urlcmdで収集し、Namazu の検索対象にしています。
ところが Namazu で検索するためには、適当に Form 文が書かれたページに行く必要があり、Google ツールバーみたいに Namazu 用のツールバーがあったらな〜と思っていました。
技術力も無いし、思っていただけだったのですが、ある時偶然 こちらの方に サンプルプロジェクトが転がっていることを見つけ (Microsoft の ULR はコロコロ変わりますので、 リンクが切れた場合は「Band Object Implementation」で検索ください)、 試しに改造して作って見ました。
バイナリは こちらです (V0.01)。 ダウンロードして適当なディレクトリに展開してください。
続いて中の NamazuBar.def を自分の環境にあわせ編集してください。 中には cgi, cache, save の三つのパラメータがあります。 それぞれの意味は次の通りです。
cgi | namazu.cgi のある URL |
cache | ローカルに溜めたキャッシュを表示する際の先頭 URL |
save | ローカルキャッシュのファイルパス |
と言ってもよく分からないと思いますので、例をあげて説明します。
今、あなたの環境下で http://192.168.0.2/PageCopy/NamazuBin/namazu.cgi にアクセスすると Namazu の検索画面が現れたとします。 さらにそこで検索をかけると http://192.168.0.2/PageCopy/Pages/ 以下に http:// を覗いた本来の URL が出たとします (例えば、本ページ: http://homepage3.nifty.com/... の場合 http://192.168.0.2/PageCopy/Pages/homepage3.nifty.com/... になる)。 さらにそのファイルは samba か何かで L:\htdocs\PageCopy\Pages 以下に見えていたとします (これも本ページの場合 L:\htdocs\PageCopy\Pages\homepage3.nifty.com\... になる)。
その場合は以下のように記述します。
cgi http://192.168.0.2/PageCopy/NamazuBin/namazu.cgi cache http://192.168.0.2/PageCopy/Pages/ save L:\htdocs\PageCopy\Pages |
なお、cache や save は後述する[オリジナル]や[保存]ボタンのためのものですから、 これらの機能を使わない場合書かなくてかまいません。
NamazuBar.def の編集が終わったら、続いて同封の Install.bat を実行します。 すると IE の[表示]-[ツールバー]に[Namazu Band]という項目が現れますので、 チェックします。すると無事に Namazu 用のツールバーが現れます。
なお、説明の都合で Install.bat を後にもって来ましたが、NamazuBar.def は IE 起動時に読み込んでますので、設定を変える場合は NamazuBar.def を書き換えて、 IE を再起動すればいいです。 また、アンインストールしたい場合は同封の Uninstall.bat を実行してください。
また、動作確認は WindowsXp-Pro, IE6 以外では行っていません。
NamazuBar は、左から検索文字列入力エリア、[検索]ボタン、[オリジナル]ボタン、 [保存]ボタン、[ハイライト]ボタンから成っています。
基本的な使い方は Google ツールバーと同じく 検索文字列入力エリアに検索文字列を入れて[検索]ボタンを押して Namazu 検索を行うことです。
[ハイライト]ボタンを押すと、検索文字列入力エリアに入力された文字列が、 ページ中ハイライト表示されます。
もし表示しているページの URL の前半が cache で指定した値と等しい場合、 [オリジナル]ボタンが有効になります。これを押すと cache 部分が削除された 本来の URL にジャンプします。
一方、表示しているページの URL が cache と異なる、 拡張子が html, htm, txt である、スキームが http: であるなどの条件が重なると [保存]ボタンが有効になります。 これを押すと save で指定したディレクトリ以下にページの内容を保存します。 詳しくはurlcmdを参照してください。
はっきり言ってソースはぐちゃぐちゃです。 前述したようにサンプルプログラムを拾ってきて適当に改造しただけです。
COM を触ったのも初めてならば IWebBrowser2 をいじったのも初めて、 VARIANT, BSTR って何? という世界だったので、 よく分からないまま適当に書きました。
という訳で、実は何か間違った API の使い方をしているとか、 ハンドルやらメモリを開放せずにどんどん開いていて 長時間利用していると動きが変になるという可能性も否定できません。
より具体的な例を言うと、バッファの大きさを20KB にしているため、 それ以上のページに対して、保存やらハイライトをすると落ちるかもしれません。
さらに普通のツールバーのようにできず見た目が悪いとか ( この辺にヒントになりそうなことが書かれていたけど、力不足で理解不能)、 バックスペースが効かない (これまた この辺 に何か書かれてるけど...FAQ ってどこだ?)、Enter で検索がはじまらない など不満な点が一杯あります。
その辺悩むのもめんどうくさいし、一応一通り動くんだからソース公開すれば 識者が何かしてくれるかもと、甘い考えもあって ソース (VC++ 6.0 用) を公開します。 煮るなり焼くなり好きにしてください。
なお、改良した際は一報頂けると幸いです。
本文中リンクは無いものの参考にしたページ
履歴
こちらの方にも書いていますが、 本プログラムは完全無保証です。 これを使って利用者にいかなる損失が発生しても作者は一切責任を負いません。 また不具合があったとしても、作者は必ずそれを修正するという義務を負いません。
再配布やソースの改造等は特に制限しません。自由にお使いください。