X
C# コードを使用してマウスを移動およびクリックするために必要なすべてのコードがありますが、マウスの位置をandに設定したくありませんY
。それはぎこちなく見えます。代わりに、 Z 秒間X1, Y1
でポイントからポイントへのスムーズな遷移が必要です。X2, Y2
キーフレームに似ています。
私はこれに似た方法を探しています:
public void TransitionMouse(int x, int y, double durationInSecs)
マウスを現在の位置から数秒でスムーズに移動x
しますy
。durationInSecs
次の関数があります。
public void MoveMouse(int x, int y)
x
これにより、マウスがy
すぐに に移動します。
編集
助けてくれてありがとう!完成し、テストされたコードは次のとおりです。
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
public void TransitionMouseTo(double x, double y, double durationSecs)
{
double frames = durationSecs*100;
PointF vector = new PointF();
PointF mousePos = Cursor.Position;
vector.X = (float)((x - mousePos.X) / frames);
vector.Y = (float)((y - mousePos.Y) / frames);
for (int i = 0; i < frames; i++)
{
SetCursorPos((int)(mousePos.X += vector.X), (int)(mousePos.Y += vector.Y));
Thread.Sleep((int)((durationSecs / frames) * 1000.0));
}
}