Я попробовал код, который разместил Маркос, и он не работал для меня. Что бы я ни давал координате Y, курсор не двигался по оси Y. Приведенный ниже код будет работать, если вы хотите, чтобы положение курсора было относительно левого угла рабочего стола, а не относительно вашего приложения.
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_MOVE = 0x0001;
public void DoMouseClick()
{
X = Cursor.Position.X;
Y = Cursor.Position.Y;
//move to coordinates
pt = (Point)pc.ConvertFromString(X + "," + Y);
Cursor.Position = pt;
//perform click
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
Я только использую функцию mouse_event, чтобы фактически выполнить щелчок.
Вы можете дать координаты X и Y, какие координаты вы хотите, я использовал значения из текстового поля:
X = Convert.ToInt32(tbX.Text);
Y = Convert.ToInt32(tbY.Text);