マウスをプログラムから動かしたい

マウスの操作にはWin32APIのmouse_eventを使います。

宣言
DLLを利用("user32", "void mouse_event(DWORD,DWORD,DWORD,DWORD,DWORD)", "?,?,?,?,?", "mouse_event");
MOUSEEVENTF_MOVE = $0001
MOUSEEVENTF_LEFTDOWN = $0002
MOUSEEVENTF_LEFTUP = $0004
MOUSEEVENTF_RIGHTDOWN = $0008
MOUSEEVENTF_RIGHTUP = $0010
MOUSEEVENTF_MIDDLEDOWN = $0020
MOUSEEVENTF_MIDDLEUP = $0040
MOUSEEVENTF_XDOWN = $0080
MOUSEEVENTF_XUP = $0100
MOUSEEVENTF_WHEEL = $0800
MOUSEEVENTF_VIRTUALDESK = $4000
MOUSEEVENTF_ABSOLUTE = $8000
XBUTTON1 = $0001
XBUTTON2 = $0002
WHEEL_FORWORD = 1
WHEEL_BACKWORD = -1

 
引数の意味
 第一引数: MOUSEEVENTFで始まるフラグを指定します。MOUSEEVENTF_VIRTUALDESKとMOUSEEVENTF_ABSOLUTEは、ほかのフラグと一緒に指定します。
 第二引数: 第一引数にMOUSEEFENTF_ABSOLUTEを指定した時は、マウスイベントを起こすX座標を絶対座標で指定します。
 第三引数: 第一引数にMOUSEEFENTF_ABSOLUTEを指定した時は、マウスイベントを起こすY座標を絶対座標で指定します。
 第四引数: 第一引数にMOUSEEVENTF_WHEELを指定した場合は、WHEEL_FORWORDかWHEEL_BACKWORDを指定します。

 MOUSEEVENTF_XDOWNかMOUSEEVENTF_XUPを指定した時は、XBUTTON1かXBUTTON2を指定します。
 第五引数:
使用しません。0を指定します。

 
サンプル
 
*マウス右クリック
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
戻る。
 
*マウスドラッグ(?,?から、?,?へ)
引数取得。
mouse_event(OR(MOUSEEVENTF_MOVE,MOUSEEVENTF_ABSOLUTE), それ#0, それ#1, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(OR(MOUSEEVENTF_MOVE,MOUSEEVENTF_ABSOLUTE), それ#2, それ#3, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
戻る。
 
*ホイール上
mouse_event(MOUSEEVENTF_WHEEL, 0, 0, WHEEL_FORWORD, 0);
戻る。
 
*ホイール下
mouse_event(MOUSEEVENTF_WHEEL, 0, 0, WHEEL_BACKWORD, 0);
戻る。

戻る
top