Как сделать клик мышкой по координатам с++
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);
Если требуется вернуть курсор на место, то координаты надо сохранить и опять вызвать перемещение.
для меня С++ не родной, может какие знаки перепутал