マウスカーソルを動かすにはmouse_eventを使う。この関数は引数として使う座標値がスクリーン座標ではないので、GetSystemMetricsで変換して渡す。
Test用の関数を実行すると現在位置から右斜め下に向かってマウスカーソルが勝手に移動する。
//
// マウスカーソル移動関数
//
void MoveMouse(UINT nX,UINT nY)
{
DWORD dwX;
DWORD dwY;
//スクリーン座標をmouse_event()用の座標に変換
dwX = nX * 65535 / ::GetSystemMetrics(SM_CXSCREEN);
dwY = nY * 65535 / ::GetSystemMetrics(SM_CYSCREEN);
//マウスカーソルを移動
::mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE,dwX,dwY,NULL,NULL);
}
void Test(void)
{
int i;
POINT pt;
//現在のマウスカーソル位置取得
::GetCursorPos(&pt);
for(i = 0; i < 30; i++)
{
//マウス位置を右斜め下にちょっとずらす
pt.x += 10;
pt.y += 10;
//マウスカーソルを移動
MoveMouse(pt.x,pt.y);
//50ミリ秒待機
::Sleep(50);
}
}
