第十八回目 ウインドウズマクロ入門 その5

第十八回目はウインドウズマクロ入門 その5について。

今回はGoogleを離れてマウスコントロールについて学びます。
マウスカソールは通常、マウスによって操作されますが、これを自動的にスクリプトによって動かしてみます。

▼サンプルファイルダウンロード

/////////////////////////////////////////////////////////////////////
// マウスカーソル移動 ver1.0
/////////////////////////////////////////////////////////////////////

//←をつけるとその後はコメントアウトされます

//移動するカーソルのX座標を入力する
//入力されたデータは変数 X_MOUSEに代入される
X_MOUSE = INPUT( “移動したいマウスカーソルのX座標(横位置)を半角数字で入力して下さい” )

//移動するカーソルのY座標を入力する
//入力されたデータは変数 Y_MOUSEに代入される
Y_MOUSE = INPUT( “移動したいマウスカーソルのY座標(縦位置)を半角数字で入力して下さい” )

//ウインドウを出して知らせる
msgbox( “マウスカーソルをX:” + X_MOUSE + ” Y:” + Y_MOUSE + “ に移動します。”)

//マウス移動
MMV( X_MOUSE , Y_MOUSE )

print “処理終了”

しかし、これでは早すぎて面白くないので、移動プロセスが見えるようにしましょう。改作したものがこれです。

/////////////////////////////////////////////////////////////////////
// マウスカーソル移動 ver1.1
/////////////////////////////////////////////////////////////////////

//←をつけるとその後はコメントアウトされます

//移動するカーソルのX座標を入力する
//入力されたデータは変数 X_MOUSEに代入される
X_MOUSE = INPUT( “移動したいマウスカーソルのX座標(横位置)を半角数字で入力して下さい” )

//X座標がマイナスであれば0に補正
if X_MOUSE < 0 then X_MOUSE = 0

//移動位置が画面幅を超えていれば補正
if X_MOUSE > G_SCREEN_W then X_MOUSE = G_SCREEN_W – 1

//移動するカーソルのY座標を入力する
//入力されたデータは変数 Y_MOUSEに代入される
Y_MOUSE = INPUT( “移動したいマウスカーソルのY座標(縦位置)を半角数字で入力して下さい” )

//Y座標がマイナスであれば0に補正
if Y_MOUSE < 0 then Y_MOUSE = 0

//移動位置が画面幅を超えていれば補正
if Y_MOUSE > G_SCREEN_H then Y_MOUSE = G_SCREEN_H – 1

//移動するカーソルの移動速度を入力する
//入力されたデータは変数 SPD_MOUSEに代入される
SPD_MOUSE = INPUT( “マウスカーソルの移動速度を半角数字で入力して下さい(0:瞬間 1=1秒 0.1=1/100秒)” )

//ウインドウを出して知らせる
msgbox( “マウスカーソルをX:” + X_MOUSE + ” Y:” + Y_MOUSE + “ に移動します。”)

//現在のマウス位置を記憶する(変数に格納する)
OLD_X_MOUSE = G_MOUSE_X //現在のマウスのX座標はG_MOUSE_Xで参照できる
OLD_Y_MOUSE = G_MOUSE_Y //現在のマウスのY座標はG_MOUSE_Yで参照できる

//SPD_MOUSEが0以下なら瞬間移動
ifb SPD_MOUSE <= 0 then

//マウス移動
MMV( X_MOUSE , Y_MOUSE )

endif

//Repeat~Until文は、条件が偽の間処理をループし続けるループ文の一種でwhile文と逆の働きがあります。
Repeat

print G_MOUSE_X //現在の座標をプリント出力
print G_MOUSE_Y //現在の座標をプリント出力

//現在位置が目的位置よりも大きければ
ifb G_MOUSE_X > X_MOUSE then

//現在位置から移動距離を差し引く
OLD_X_MOUSE = OLD_X_MOUSE – 1

//そうでなければ
else

//現在位置に移動距離を足す
OLD_X_MOUSE = OLD_X_MOUSE + 1

endif

//現在位置が目的位置よりも大きければ
ifb G_MOUSE_Y > Y_MOUSE then

//現在位置から移動距離を差し引く
OLD_Y_MOUSE = OLD_Y_MOUSE – 1

//そうでなければ
else

//現在位置に移動距離を足す
OLD_Y_MOUSE = OLD_Y_MOUSE + 1

endif

//マウス移動
MMV( OLD_X_MOUSE , OLD_Y_MOUSE )

//sleepは指定時間スクリプトを停止する
//0.1は1/100秒
sleep( 1 / SPD_MOUSE )

Until ABS( X_MOUSE – G_MOUSE_X ) <= 1 AND ABS( Y_MOUSE – G_MOUSE_Y ) <= 1

//移動完了をウインドウを出して知らせる
msgbox( “移動が完了しました。ダブルクリックします! ENTERキーを押して下さい。” )

//マウスの左ボタンをダブルクリックする
//50はタイミングを意味します。0.5秒待って、次のクリックをするという意味です。
BTN( LEFT , 0 , X_MOUSE, Y_MOUSE , 50 )
BTN( LEFT , 0 , X_MOUSE, Y_MOUSE , 50 )

print “処理終了”

移動場所と移動速度を指定することで、移動プロセスが見えるようになりました。
最後に移動したらダブルクリックをするようになっています。
アイコンがあればダブルクリックをしてくれます。

今回はここまで!

ウインドウズマクロウインドウズマクロウインドウズマクロウインドウズマクロ

【Yahoo! Imgae】

関連記事