マウスカーソルを動かす

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

プロジェクトファイルをダウンロード


カテゴリー「システム情報」 のエントリー