マウス操作
ここではJScriptでマウス操作をする方法について紹介します。 スクリプトの処理でクリックや、マウスポインタの移動が出来ます。 実は、JScriptでは本来マウスを操作することは出来ません。 これから紹介するものはDLLのお力をお借りしてようやく出来るものです。 こちらのサイトでも紹介していたのですが、それをさらにパワーアップしてみました。 ここでは、Run()関数とSleep()関数程度しか使いません。 Run()関数についてはアプリケーション操作のアプリケーションの起動を参照してください。 Sleep()関数についてはアプリケーション操作のウインドウをアクティブ状態にするを参照してください。 本ページ内のサンプルは全てマウス操作用のDLLが必要です。 実行する場合は上記のリンクからダウンロードしてサンプルコードのファイルと同じディレクトリに置いてから実行してください。
マウスポインタを移動(絶対値)
マウスポインタの位置を指定した場所に移動させるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // マウスポインタの位置を設定。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、マウスポインタの位置を設定 // (X座標=100, Y座標=300) sh.Run( "rundll32.exe MouseEmulator.dll, _SetMouseXY@16 100, 300" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後にマウスカーソルの位置がX座標が100px、Y座標が300pxに移動します。
マウスポインタを移動(相対値)
マウスポインタを現在の位置を基準に移動させるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // マウスポインタの位置を現在の位置から移動。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、マウスポインタの位置を移動 // (X座標+=100, Y座標+=300) sh.Run( "rundll32.exe MouseEmulator.dll, _AddMouseXY@16 100, 300" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後に現在のマウスカーソルの位置からがX座標が100px、Y座標が300px移動します。
クリック
クリックの動作をさせるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // クリックする。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、クリックする sh.Run( "rundll32.exe MouseEmulator.dll, _ClickLeft@16" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後に現在のマウスカーソルの位置をクリックします。
ダブルクリック
ダブルクリックの動作をさせるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // ダブルクリックする。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、ダブルクリックする sh.Run( "rundll32.exe MouseEmulator.dll, _DoubleClickLeft@16" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後に現在のマウスカーソルの位置をダブルクリックします。
右クリック
右クリックの動作をさせるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // 右クリックする。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、右クリックする sh.Run( "rundll32.exe MouseEmulator.dll, _ClickRight@16" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後に現在のマウスカーソルの位置を右クリックします。
ホイールを回転
マウスホイールを回転させる動作をさせるには以下のサンプルで実現できます。 ただし、マウス操作用のDLLが本サンプルコードのファイルと同じディレクトリに無いと動作しません。
[サンプルコード]
// // マウス操作 // // マウスホイールを回転させる。 // // Shell関連の操作を提供するオブジェクトを取得 var sh = new ActiveXObject( "WScript.Shell" ); // 3秒処理を停止 WScript.Sleep( 3000 ); // DLLファイルから関数を呼び出し、ホイールを上に回転 sh.Run( "rundll32.exe MouseEmulator.dll, _RotWheel@16 120" ); WScript.Sleep( 1000 ); // DLLファイルから関数を呼び出し、ホイールを下に回転 sh.Run( "rundll32.exe MouseEmulator.dll, _RotWheel@16 -120" ); WScript.Sleep( 1000 ); WScript.Echo( "終了" ); // オブジェクトを解放 sh = null;
[実行結果]
実行してから、3秒後にマウスホイールを上に回転(少し)し、その1秒後にマウスホイールを下(少し)に回転します。
マウス操作用DLLについての解説
これまでに紹介してきたマウス操作についてですが、サンプルだけで詳しい使い方を紹介してなかったのでここで紹介します。 それに加え、私が作成したマウス操作用DLLファイル内に含まれている関数はこれまでに紹介してきたもの以外にもあるのでここで紹介します。
Run()関数の引数に書いてきたDLLの関数呼び出しの記述を下の画像で解説しました。 下の画像ではDLL内の関数に渡す引数・・と記載しましたが、関数内部でC言語のsscanf()関数を使用して引数として渡しています。 sscanf()関数の引数に私は「"%ld,%ld・・・"」と記述しています。 下の画像では、「100, 300」とカンマで区切って渡しています。 これが「"%ld%ld・・・"」としていた場合は「100 300」と半角スペース区切りにしなければなりません。 まあ、これはあくまで拡張する方のための解説です。 これまでに紹介したクリックや、マウスポインタの移動についての関数以外にもマウス操作用DLLファイルには他にも関数があります。 これまでに紹介した物も含めて以下の表にまとめてみました。 適当に使ってやってください。 それから今回使用したDLLをさらに拡張する気満々の方にはここから今回のDLLを作成したC言語のソースファイルをダウンロードしてもらってもかまいません。 どうぞどうぞ・・。 [DLL内の関数リスト]
関数名 | 引数1 | 引数2 | 戻り値 | 関数概要 |
---|---|---|---|---|
SetMouseXY | X座標 | Y座標 | なし | マウス座標を設定する(X,Y) |
SetMouseX | X座標 | なし | マウス座標を設定する(X) | |
SetMouseY | Y座標 | なし | マウス座標を設定する(Y) | |
GetMouseX | マウスのX座標 | マウス座標を取得する(X) | ||
GetMouseY | マウスのY座標 | マウス座標を取得する(Y) | ||
AddMouseXY | X座標の加算値 | Y座標の加算値 | なし | マウス座標を加算する(X,Y) |
AddMouseX | X座標の加算値 | なし | マウス座標を加算する(X) | |
AddMouseY | Y座標の加算値 | なし | マウス座標を加算する(Y) | |
DownLeft | なし | 左ボタンを下げる | ||
UpLeft | なし | 左ボタンを上げる | ||
ClickLeft | なし | 左クリック | ||
DoubleClickLeft | なし | 左ダブルクリック | ||
DownRight | なし | 右ボタンを下げる | ||
UpRight | なし | 右ボタンを上げる | ||
ClickRight | なし | 右クリック | ||
DoubleClickRight | なし | 右ダブルクリック | ||
DownMiddle | なし | 中ボタン下げる | ||
UpMiddle | なし | 中ボタン上げる | ||
ClickMiddle | なし | 中ボタンクリック | ||
DoubleClickMiddle | なし | 中ボタンダブルクリック | ||
RotWheel | ホイールの移動量 | なし | ホイールを回転させる |
キーボード操作へ | 目次 | Excel操作へ |