Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Заставить работать код корректно в приложениях>


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

Такое приложение было написано одним хорошим пользователем сего форума с ником kylroma, вот код:

Код

#include <windows.h>
#include <cmath>

int main()
{
POINT cp;
POINT temp;
int speed = 10;
int width = GetSystemMetrics(SM_CXSCREEN);
int high = GetSystemMetrics(SM_CYSCREEN);
GetCursorPos(&cp);
temp.x = cp.x;
temp.y = cp.y;

while(true)
{
GetCursorPos(&cp);
if(cp.x != temp.x) 
{
temp.x = cp.x+speed*((cp.x - temp.x)/fabs(cp.x-temp.x)); 
if(temp.x >= 0 && temp.x<=width)
SetCursorPos(temp.x,temp.y);
}
if(cp.y != temp.y)
{
temp.y = cp.y+speed*((cp.y - temp.y)/fabs(cp.y-temp.y));
if(temp.y >= 0 && temp.y<=high)
SetCursorPos(temp.x,temp.y);
}
}
}

Однако приложение не работает в играх, т.е. просто виндовс пользовать можно, а в любой игре (шутер и тп) мышь не слушается и курсор просто дёргается хаотично.

Суть проблемы: возможно ли каким либо образом заставить данный код работать в играх? Как я понимаю формула ежесекундно что то обсчитывает, возможно ли как то модифицировать код что бы в игре это не превращалось в неуправляемое дёргание курсора? Есть тут грамотные в юзеры, кто хоть что то смыслит в WinApi и способен подсказать решение проблемы? Буду очень благодарен!

Автор: GremlinProg 16.4.2016, 23:39
В играх в основном используется DirectShow для управления мышью, там координаты мыши берутся в обход API, так что ищите специалиста по DirectShow, а не WinAPI.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)