![]() |
Приветствую! Пытаюсь изменить позицию мыши через с++ на windows, способ должен поддерживать игры. Я нашел два способа:
1. Работает отлично, но mouse_event считается устаревшим методом. C++: Код:
static2. Работает буд-то под нехилой дозой изменяя позицию вообще непонятно как. C++: Код:
staticКому интересно как я получаю позицию: C++: Код:
staticДопустим если выполнить: C++: Код:
posЯ получу в консоли это "чудо" (вообще не то, на что я расчитывал): Код: Код:
805 55Копаясь в интернете я нашел якобы решение, но оно не совсем спасает. Можно изменить код: C++: Код:
inputТеперь все куда точнее, но бывают моменты, когда разница составляет 10+ пикселей, это не дело. Но такое поведение характерно тем моментам, когда изменяются две оси, если только одна (например Код:
Mouse::input(100, 0);Еще можно добавить флаг MOUSEEVENTF_ABSOLUTE к MOUSEEVENTF_MOVE, но тогда в играх работать ничего не будет. Такое поведение второго способа мне не нравится, надо шо то с ним делать. Я уже перелазил весь интернет и ничего толком не нашел под мой случай. Буду благодарен вашим предложениям! UPD: Во втором способе используются не пиксели, а какие то mickey(маусы наверное), но шо это - не ясно... |
Используешь SendInput и усё.
Если нужно точное позиционирование, берешь MOUSEEVENTF_ABSOLUTE и конвертируешь координаты в диапазон 0-65535. Но игры могут это игнорить, так что для них лучше MOUSEEVENTF_MOVE относительное перемещение. Только учти, что координаты там в "миках" как ты выразился в маусах)), а не в пикселях, поэтому точность может хромать, особенно если двигаешь по двум осям сразу. Если хочешь больше контроля, то хуки через SetWindowsHookEx. Ты можешь перехватывать события мыши и менять их. |
Цитата:
|
Цитата:
Computer dictionary definition for what mickey means including related links, information, and terms. www.computerhope.com |
| Время: 23:58 |