マウスカーソルを動かすには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); } }