2013年6月16日日曜日

JScriptでIEを操作 画面キャプチャ

前回に引き続き、JScriptでIEを操作する関数のメモ。
今回は画面キャプチャを行う関数。
画面キャプチャのフリーソフトのWinShotを利用する。


//***********************************************
//画面のキャプチャを取得する関数
//***********************************************
function capturePage( ie ) {
  var h1 = ie.document.body.clientHeight;//表示領域の高さ
  var h2 = ie.document.body.scrollHeight;//ページ領域の高さ
  for(var i = 0; i <= h2; i+=h1) {
    ie.document.parentWindow.scrollTo(0, i);
    runWinShot();
  }
}

//***********************************************
//WinShotを実行する関数
//***********************************************
function runWinShot()
{
  //WinShot.exeのファイルパス
  var WinShotExeFile = "C:\\ws153a\\WinShot.exe";
  //Shell関連の操作を提供するオブジェクトを取得
  var sh = new ActiveXObject( "WScript.Shell" );
  // コマンドを実行(アクティブウィンドウのキャプチャを取得)
  var e = sh.Exec( WinShotExeFile + " -j -a -x" );
  while (e.Status == 0) {
    WScript.Sleep(100);
  }
  sh = null;
}


以下のサイトのように、Excelを使って画面キャプチャを取得する方法もある。
 画面のスクリーンショットを,Excelブック内に自動的に保存するバッチ

ちなみに、上記サイトは他にもブラウザの自動操作に関するテクニックが色々のってるので参考になる。