При использовании флага MOUSEEVENTF_ABSOLUTE все ясно: есть 65535 на 65535 поле, собственно в любую точку которого мы можем переместиться. А по какому алгоритму передвигаеться мышь при отсутствии флага MOUSEEVENTF_ABSOLUTE. ВО-первых что я заметил что тогда у курсора появляеться разгон. В msdn сказанно про SystemParametersInfo но также не обьесненно что да как. Те задача по сути такая используя mouse_event без MOUSEEVENTF_ABSOLUTE передвинуть курсор на какуенибуть относительную величину, будь то витуальное поле (65535 на 65535), буть то размер экрана.
Провел небольшой эсперемент Код (Text): POINT t; SetCursorPos(0,0); mouse_event(MOUSEEVENTF_MOVE, 100, 100, 0, GetMessageExtraInfo()); GetCursorPos(&t); cout << t.x << ' ' << t.y << '\n'; SetCursorPos(0,0); for(int i=0;i<100;i++) mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, GetMessageExtraInfo()); GetCursorPos(&t); cout << t.x << ' ' << t.y << '\n'; получаем 191 192 56 60
Читать MSDN надо внимательнее: Без этого флага производится перемещение курсора относительно текущих координат - т.е. переданные x y прибавляются к текущим координатам курсора, при этом указывается число пикселей.