C#移动/单击鼠标Winforms

时间:2017-05-03 08:38:23

标签: c# winforms mouse

我想创建一个自动移动鼠标的应用程序,只需按一下背景中的按钮即可点击它。我是来自Sales and Inventory / HTML Shop网站编程,这是我第一次制作涉及控制的应用程序。请帮助我,因为我想推动我的编程技巧。 这就是我想要做的和我的想法。 *我将为重复移动设置一个循环计数器

1.get当前光标的x / y并将其保存到名为(坐标)的变量(点A)

2.右键单击并向右下方移动(B点)

3.等待2秒

4.使用变量(坐标)

移回第一个位置

5.End循环重复。

这是我的想法和我的算法我的问题是我不知道如何移动鼠标并使其停止。

2 个答案:

答案 0 :(得分:1)

在窗口表单项目中,如果要将光标移动到屏幕上的特定点,可以使用此静态方法。

System.Windows.Forms.Cursor.Position = new Point (X,Y);

并执行点击事件,您可以使用此方法。

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

public void DoMouseClick()
{
    //Call the imported function with the cursor's current position
    uint X = (uint)System.Windows.Forms.Cursor.Position.X;
    uint Y = (uint)System.Windows.Forms.Cursor.Position.Y;
    mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}

答案 1 :(得分:0)

你可以像这样移动鼠标写一些函数或代码:

private void MoveCursor()
{
   // Set the Current cursor, move the cursor's Position,
   // and set its clipping rectangle to the form. 

   this.Cursor = new Cursor(Cursor.Current.Handle);
   Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
   Cursor.Clip = new Rectangle(this.Location, this.Size);
}

How To Move mouse in C#

要查找表单上任何控件的位置,您可以使用以下代码

Point locationOnForm = control.FindForm().PointToClient(
    control.Parent.PointToScreen(control.Location));

How to get controls location in Win Forms