Как сделать клик мышкой по координатам с++

mouse_event(MOUSEEVENTF_LEFTDOWN, x_mouse, y_mouse, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x_mouse, y_mouse, 0, 0);

Так он просто кликает в то место, где расположен курсор

POINT cPt; 
GetCursorPos(&cPt); 
y_mouse = int(cPt.y); 
GetCursorPos(&cPt); 
x_mouse = int(cPt.x);

Ответы (1 шт):

Автор решения: Alex R.

На всякий случай замечу, что в приведенном коде координаты курсора не меняются.

Но даже если бы менялись, то это не помогло, так как параметры dx, dy используется с MOUSEEVENTF_MOVE и игнорируются при вызове с MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP.

Я всегда перемещал курсор по абсолютным координатам мыши (они специальные)

  POINT cPt;

  GetCursorPos(&cPt);

  cPt.X = cPt.X + 100;
  cPt.Y = cPt.Y + 100;

  x_mouse = int(Round(65535 / ScreenWidth * cPt.X)));
  y_mouse := int(Round(65535 / ScreenHeight * cPt.Y)));

  mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, x_mouse , y_mouse , 0, 0);
  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

Если требуется вернуть курсор на место, то координаты надо сохранить и опять вызвать перемещение.


для меня С++ не родной, может какие знаки перепутал

→ Ссылка