Jscriptで指定範囲の画面キャプチャ
同じフォルダにMouseEmulator.dllと設定ファイルPSC1.txtが必要です。
「WSH JScriptを使いこなそう ~マウス操作~」様
http://jscript.zouri.jp/Source/MouseCtrl.html
処理用ファイル
mouse.js
excel = WScript.CreateObject("Excel.Application")
function psc(str)
{
//API Command for Mouse Control
var s1 ="rundll32.exe MouseEmulator.dll, _";
var s2 ="@16";
var c1 ="SetMouseXY";
var c2 ="DownLeft";
var c3 ="UpLeft";
//Get current mouse position
var ret = excel.ExecuteExcel4Macro( "CALL(\"user32\",\"GetMessagePos\",\"J\")" );
var strHex = ("00000000" + ret.toString(16).toUpperCase()).slice(-8);
var y = parseInt("0x" + strHex.slice(0, 4),16);
var x = parseInt("0x" + strHex.slice(-4),16);
//WScript.Echo(x + "_" + y);
var buf =str.split(",");
//Send PrintSCreenKey
excel.ExecuteExcel4Macro( "CALL(\"user32\",\"keybd_event\",\"JJJJJ\",44,121,1,0)" );
excel.ExecuteExcel4Macro( "CALL(\"user32\",\"keybd_event\",\"JJJJJ\",44,121,3,0)" );
WScript.Sleep( 900 );
// MouseDrug
var sh = new ActiveXObject( "WScript.Shell" );
sh.Run( s1 + c1 + s2 + " " + buf[0] + "," + buf[1] );
sh.Run( s1 + c1 + s2 + " " + buf[0] + "," + buf[1] ); //call twice to avoid errors
sh.Run( s1 + c2 + s2);
WScript.Sleep( 100 );
sh.Run( s1 + c1 + s2 + " " + buf[2] + "," + buf[3] );
sh.Run( s1 + c3 + s2);
WScript.Sleep( 100 );
sh.Run( s1 + c1 + s2 + " " + x + "," + y);
WScript.Sleep( 100 );
//WScript.Echo( "終了" );
sh = null;
}
実行ファイル
test.js
理由はわかりませんが、ダブルクリックで実行するとミスりやすいです。ファイルを選択しておいて、エンターキーで実行すると取りこぼしが少ないようです。
a='100,200,300,400'
eval(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("mouse.js", 1).ReadAll());
psc(a);
実行ファイル作成用
Set_psc.js
0 件のコメント:
コメントを投稿