+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Заставить работать код корректно в приложениях (мышь)

  1. #1
    IvaN010 is on a distinguished road
    Регистрация
    14.04.2016
    Возраст
    21
    Сообщений
    2
    Вес репутации
    0

    Question Заставить работать код корректно в приложениях (мышь)

    Приветствую всех. На днях образовалась потребность в приложении под win, которое бы ускоряло скорость курсора мыши на большие значения, чем это позволяют сделать стандартные настройки Windows.

    Такое приложение было написано одним хорошим пользователем сего форума с ником kylroma, вот код:
    Код cpp:
    1. #include <windows.h>
    2. #include <cmath>
    3.  
    4. int main()
    5. {
    6. POINT cp;
    7. POINT temp;
    8. int speed = 10;
    9. int width = GetSystemMetrics(SM_CXSCREEN);
    10. int high = GetSystemMetrics(SM_CYSCREEN);
    11. GetCursorPos(&cp);
    12. temp.x = cp.x;
    13. temp.y = cp.y;
    14.  
    15. while(true)
    16. {
    17. GetCursorPos(&cp);
    18. if(cp.x != temp.x)
    19. {
    20. temp.x = cp.x+speed*((cp.x - temp.x)/fabs(cp.x-temp.x));
    21. if(temp.x >= 0 && temp.x<=width)
    22. SetCursorPos(temp.x,temp.y);
    23. }
    24. if(cp.y != temp.y)
    25. {
    26. temp.y = cp.y+speed*((cp.y - temp.y)/fabs(cp.y-temp.y));
    27. if(temp.y >= 0 && temp.y<=high)
    28. SetCursorPos(temp.x,temp.y);
    29. }
    30. }
    31. }
    Однако приложение не работает в играх, т.е. просто виндовс пользовать можно, а в любой игре (шутер и тп) мышь не слушается и курсор просто дёргается хаотично.

    Суть проблемы: возможно ли каким либо образом заставить данный код работать в играх? Как я понимаю формула ежесекундно что то обсчитывает, возможно ли как то модифицировать код что бы в игре это не превращалось в неуправляемое дёргание курсора? Есть тут грамотные в юзеры, кто хоть что то смыслит в WinApi и способен подсказать решение проблемы? Буду очень благодарен!
    Последний раз редактировалось Romeo; 14.04.2016 в 15:42. Причина: [code=cpp][/code]

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    37
    Сообщений
    3,091
    Вес репутации
    21

    По умолчанию Re: Заставить работать код корректно в приложениях (мышь)

    Как минимум есть проблема в том, что метрики вычитываются один раз на момент запуска. Если после запуска программы запустить игру, в которой разрешение иное, чем разрешение рабочего стола, то на лицо проблема.

    А вообще, решение достаточно кривое. Программа, будучи запущенной, загрузит процессор на 100%, дёргая код, вызывающий пересчёт, тысячи раз в секунду. Более правильным будет использование хуков.
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

  4. #3
    IvaN010 is on a distinguished road
    Регистрация
    14.04.2016
    Возраст
    21
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Заставить работать код корректно в приложениях (мышь)

    Цитата Сообщение от Romeo Посмотреть сообщение
    Как минимум есть проблема в том, что метрики вычитываются один раз на момент запуска. Если после запуска программы запустить игру, в которой разрешение иное, чем разрешение рабочего стола, то на лицо проблема.

    А вообще, решение достаточно кривое. Программа, будучи запущенной, загрузит процессор на 100%, дёргая код, вызывающий пересчёт, тысячи раз в секунду. Более правильным будет использование хуков.
    Большое спасибо за совет. Разрешение экрана одинаковое, тестировал несколько игр - везде одно и тоже. Думаю проблема в вычислении места положения курсора - код просто не видит его в игре и ломается поэтому, хотя не уверен. Я пробовал указать тупо стандартное разрешение экрана (1600-900), но код все равно не работал.

    Я бы и рад сам написать программу для работы, но как я уже упомянул код писал не я, сам я лично не программист к сожалению.

+ Ответить в теме

Похожие темы

  1. Как заставить работать прокрутку на фрейме формы?
    Несколько туповатый вопрос, но почему то у меня не получается заставить работать скролинг на фрейме. Суть такова. Есть задача забацать мини...
    от DimsonV в разделе MS Office и VB(A).
  2. конструкция не срабатывает корректно - тупиковая ситуация.
    У меня стоит разрешение 1024*768. Запускаю данный код в любом браузере. И почему-то при сворачивании окна выводится 'document.body.width > 1024'. И...
    от WEB_bobby в разделе JScript, VBScript, DHTML...
  3. как заставить работать под FireFox ?
    Использую при клике на картинке свойство window.event.offsetX, но под FireFox-ом не хочет работать. Есть какие-то альтернативные способы для FireFox ?
    от Виталик в разделе JScript, VBScript, DHTML...
  4. Hook на мышь, глобально
    Помогите. Необходимо создать глобальную ловушку на клик мышки + смещение курсора на определенное расстояние. Проблема втом, что нужно это сделать...
    от bogus в разделе Delphi и Pascal
  5. Как заставить работать инфракрасный порт под DOS?
    Нужно связать IRMate210B Dongle(внешний, подключен к COM-порту RS-232) с инфракрасным портом палма, при этом используя чистый DOS. Вопрос...
    от Anonymous в разделе Ассемблер

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения