IE Context Launcher

IEの右クリックメニューから任意ソフトを起動できる「IE Context Launcher」
enpanpy Kinoさん作のソフトで、CrenaHtml2jpgの組み込み使用例を記載して頂きました。
実際、使ってみると便利なもので、気に入ったページがあれば、そのまま右クリックして、”画面キャプチャー”を選択すると指定フォルダーに、指定したパラメータで画像を保存できます。
また合わせて、SMAIL(コマンドライン型メールソフト)の使用例もあります。

CrenaHtml2jpg 窓の杜レビュー

7/7窓の杜で、CrenaHtml2jpgのレビューを記載して頂きました。
Webページを指定したピクセルサイズで画像キャプチャー「CrenaHtml2jpg」 http://www.forest.impress.co.jp/article/2005
/07/07/crenahtml.html


窓の杜では、いつもSMAILのバージョンアップ情報で、その他のソフトのところにリリース情報を載せてもらっているのですが、今回は、新作ソフトのレビューを載せて頂きました。(感謝)。

[7]サイト サムネイル画像Crena Html2jpg v1.02

CrenaHtml2jpg v1.02が完成しました。
http://dip.picolix.jp/page3.html
http://dip.picolix.jp/disp5.html
自身の要求レベルは、これで満足しているのですが、今後,下記の機能を予定しています。
1)geckoコアモジュールが公開されているので、CrenaHtml2jpgに組み込んで、IE APIとgeckoエンジンを切り替えてキャプチャー可能にしたい。
http://moz.skillup.jp/catalog/libraries/embed/
2)リダイレクトサイトで、リダイレクト後の画面の取得が曖昧なので、完全に取得できるようにする。
3)GUI系にCSVファイルを読み込んで、連続自動取得できるようにする。時間指定&スケジュール機能


—————————–
1)は詳細は現在不明、どんなものかもわかりません。
2)は、結構面倒です。現在は、サイト表示(複数フレームも含めて)が完了した時点で、
  キャプチャー処理しています。
  リダイレクトサイトでは、リダイレクト前のhtmlを取得した段階で、サイト表示が完了
  してしまい、リダイレクト後のhtmlを取得できません。(遅延指定である程度カバーできます。
  リダイレクト後が、フレーム使用の場合は、全フレームそろわず不完全となります。)
  htmlの内容解析して、処理するしかないようです。
3)は、簡単です。
—————————–
最近は、Firefoxとかも人気で、これにはgeckoエンジンが搭載されています。
また、タブブラウザーSleipnir、Lunascape2ではIE,gecko切り替え可能です。
Sleipnirは、Sleipnir2として生まれ変わるようです。

[6]サイト サムネイル画像Crena Html2jpg

サイト サムネイル画像Crena Html2jpg
一応、実用に耐えるものができましたので、フリー:公開しました。
CrenaHtml2jpg7.jpg
1万サイト取得に8時間程度かかります、1件だけ取得エラーでCrenaHtml2jpg自体が、
保護エラーで落ちました。=>SSL使用サイトで、正規の認証局を使用していない場合、
SSL証明のダイアログボックスが表示される場合に落ちる時があります。落ちない場合もある。
ダウンロード先は、http://dip.picolix.jp/page3.html
画面紹介は、http://dip.picolix.jp/disp5.html
1万サイト取得使用実績は、http://sozai.picolix.jp/dmoz/77596/86468/index.html
今まで、url2bmpをコマンドライン&スクリプトで使ってきたのですが、エラーや取りこぼしが多く、全自動では
使い物にならなかったですが、これで自前で自動取得ができるようになりました。

[5] Crena Html2jpg : サイトキャプチャーツール

コマンドラインからの自動取得がほぼ完成したので、現在は、GUI画面の方を修正中です。
CrenaHtml2jpg-1.jpg
追加・修正項目:
 1)ブラウジング停止ボタン作成
 2)Image() 表示による、読み込みファイルのロック回避
 3)画像の画質調整
   「ソフトウェア情報館・別館」-JPEGサムネイル作成 その4 を参考にさせて頂きました。
 その他予定)
 4)URL入力&各種パラメータ設定
 5)タイムウエイト処理(FLASH画像等、読み込み後少し遅らせるため。
CrenaHtml2jpg.exe -owwwpicolixjp.jpg -fjpeg -w800x600 -s117x90 -uhttp://www.picolix.jp -q92
Quality 92
指定無しよりも若干画質が上がっています。
www92.jpg
Quality の指定無し
wwwn.jpg

[4] Crena Html2jpg : サイトのサムネイル画像の自動取得

サイトキャプチャーツールCrena Html2jpg バージョン0.2テスト中です。
コマンドラインで、スクリプト(バッチプログラム、perl等)から呼び出すと、FLASHを使用したサイトがキャプチャーできないのを修正
=>ブラウジング開始タイミングを、ON_WM_ACTIVATE()発生後にしてOKとなる。
USER AGENTは、
Mozilla/4.0 (compatible; MSIE 6.0; CrenaHtml2jpg 0.2)
で、おじゃまします。
一応、6,000サイト 7時間でエラーなく取得できました。
http://sozai.picolix.jp/dmoz/77596/902594/

[3] Crena Html2jpg : サイトのサムネイル画像の自動取得

今回作成した、サイトキャプチャーツール Crena Html2jpgで フレーム使用のサイトをキャプチャーしたとき、全フレーム読み込まずに、1フレーム、よくて2フレームしか表示しないことが判明
=>これじゃー コマンドラインから使用した、url2bmpと同じです。
読み込み完了を,DocumentCompleteで判断していたのですが、フレームを利用したサイトだとフレーム数分このイベントが発生します。
フレーム数分の最後で、終了判断しないといけないようです。
=>参考URL http://support.microsoft.com/kb/180366/EN-US/ の適用で、うまく動作しました。(ツールの公開はもう少し先です。)
※最近購入した自宅のXP HOME EdtionのIE6.0 SP2 環境だと、なぜか、フレームサイトがキャプチャーされない。
 アプリケーションの問題かとあれこれ悩んでいのですが、なんと通常のIEブラウザーで、 フレーム使用のサイトをみたら真っ白で表示されません!インターネットオプション-ツール-詳細設定でOKとして、再表示したら、フレームサイトも正しく表示されます。
但し一旦 IEを終了させて再度起動するとやはり、真っ白です。どなたかこの現象わかるかたおられるでしょうか?


–メモ–
コマンドラインからperlスクリプトで呼び出し実行したもの。
crenahtml3.jpg
ON_EVENT(CHtmlView, ID_CRENA_1, DISPID_DOCUMENTCOMPLETE, DocumentComplete, VTS_DISPATCH VTS_PVARIANT)
ON_EVENT(CHtmlView, ID_CRENA_1, DISPID_NAVIGATECOMPLETE2, OnNavigateComplete2, VTS_DISPATCH VTS_PVARIANT)
LPDISPATCH glpDisp = NULL;
void CCreateCrenaHTMLImage::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL)
{
UNUSED_ALWAYS(pDisp);
UNUSED_ALWAYS(URL);
//フレーム使用サイトで最後のフレームで処理する。
if (glpDisp && glpDisp == pDisp){
// if the LPDISPATCH are same, that means
// it is the final DocumentComplete. Reset glpDisp
EndModalLoop(0);
glpDisp = NULL;
}
}
void CCreateCrenaHTMLImage::OnNavigateComplete2(LPDISPATCH pDisp, VARIANT* URL)
{
// Check if glpDisp is NULL. If NULL, that means it is
// the top level NavigateComplete2. Save the LPDISPATCH
if (!glpDisp){
glpDisp = pDisp;
}
}

[2]サイトのサムネイル画像の自動取得

当初、VC6.0で作っていたのですが、BMPからJPEGに変換するのに、GDI+を使おうと思ったのですが、VC6.0だといろいろ小細工が必要らしい。
「GDI+をVC++ 6.0(MFC)から利用する覚え書き」
http://live.under.jp/todashou/tips/MFC/gdiplus.html
最近のサンプルソースも、VC7.0で記述されているものも多く、手っ取り早く,Visual Studio .netをインストールして、C++(VC7.0)で作成することにした。
一応、最低限の機能ですが、テストバージョンが完成しました。
800×600 => 117×90のJPEGファイルにサムネイル画像を作成。(BMP,GIF,PNG変換対応)
crenahtml2jpg.jpg


懸案だった,Javaスクリプトによる、ダイアログBOXの表示による停止、
ポップアップウインドウの抑止などができています。
–メモ–
1)パラメータは、埋め込みなので、iniファイルから設定できるように修正予定。
2)URL,出力ファイル名は、コマンドラインもしくは、ファイルから読み込むようにする予定。
3)プロセスのタイムアウト処理機能の追加
4)httpのエラー番号:400番台、500番台のサムネイル出力の抑止(未定)
完成したら、公開予定です。(日は未定)
仮称:キャプチャーブラウザー CrenaScape 0.01はやめて、CrenaHtml2jpg 0.10にしました。
尚、アプリのスクリーンショット中のURLは、わざとJavascriptエラーをするようにしています。あしからず。。

サイトのサムネイル画像の自動取得

サイトのサムネイル画像の取得に,pixel-technologyのurl2bmpをvcプログラムから呼び出して使っているのですが、1万サイトを自動で取得すると、JavaScriptエラーのダイアログBOXや、ポップアップウインドウ、プラグインのダウンロード画面などで、デスクトップ画面が埋め尽くされてしまいます。またプログラムから呼び出すと、画像を取得できないことも良く発生する。
他に、Html2bmpを試したのですが、こちらも、url2bmpと同様で、1万サイトの取得には無理があるようです。
有料で、HTML2JPG HTML2JPG, Personal Edition、HTML2JPG, Enterprise Versionがありますが、これも途中でハングアップして今一、使えません。(コマンドラインから使えません。)
何か、いいのはないでしょうか?あればそれを使うのですが。
今のところ見つからないので、作ることにしました。(作成途中です。)
仮称:キャプチャーブラウザー CrenaScape 0.01
crenascape.jpg


–メモ–
1) ポップアップをブロック
void CCrenascapeView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
CHtmlView::OnNewWindow2(ppDisp, Cancel);
*Cancel = VARIANT_TRUE ;
return ;
}
2) JavaScriptエラー時にダイアログBOXを表示しない。
3) プラグインのダウンロードしない。
BOOL CCrenascapeView::OnAmbientProperty(COleControlSite *pSite, DISPID dispid, VARIANT *pvar)
{
USES_CONVERSION;
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal = DLCTL_PRAGMA_NO_CACHE | DLCTL_SILENT | DLCTL_DLIMAGES | DLCTL_NO_DLACTIVEXCTLS;
return TRUE;
}
return CView::OnAmbientProperty(pSite, dispid, pvar);
}
4) スクロールバーを表示しない。
HRESULT CDocHostHtmlView::OnGetHostInfo(DOCHOSTUIINFO * pInfo)
{
pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_SCROLL_NO;
pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
return S_OK;
}
まで作成できました。後は、キャプチャー機能を入れて、コマンド
ラインからも実行できれば完成です。(完成は、いつになるか未定)

侵入検知システム snort

前回、無料サーバで、放置状態だったサイトpio.picolix.jpに何者かによってwebscrなるものが
設置されて踏み台にされたようです。pio.picolix.jpは閉鎖いたしました。
今回、管理サイトは、全て、こちらの専用サーバに移行しました。
クラッキング防止に、フリーのSnortを導入してみようかと思ってます。
日本 Snort ユーザ会(Japan Snort Users Group)
[その他情報]
ホームページの一部改ざん及び不正なプログラムのダウンロードについて(注意喚起) [警察庁]