マウス操作


 ここでは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ファイル内に含まれている関数はこれまでに紹介してきたもの以外にもあるのでここで紹介します。



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操作へ