你如何减少cpu/帧,而有一个鼠标挂钩,而不引起鼠标拖拽?c++

How do you reduce cpu/frames while having a mousehook, without causing mouselag? c++

本文关键字:鼠标 c++ 何减少 有一个 cpu      更新时间:2023-10-16

就像那样简单,当我使用Sleep();时,我的mousehook导致mouselag,我不知道如何修复它。

在我的mousehook的消息循环中有一个Sleep();会导致系统范围的mouselag,这是我想要避免的。

那么我如何在不延迟鼠标/系统的情况下减少cpu/帧?

Mousehook = SetWindowsHookEx(WH_MOUSE_LL, HookCallback, NULL, 0);

:

 LRESULT CALLBACK HookCallback(int nCode, WPARAM wParam, LPARAM lParam)
{
switch (wParam)
    {
    case WM_RBUTTONDOWN:
        PostQuitMessage(0);
        break;
    default:
        break;
    }
return CallNextHookEx(Mousehook, nCode, wParam, lParam);
}

每当我在任何地方调用Sleep();时,它都会导致钩子冻结或延迟鼠标。

你如何减少cpu/帧,而有一个鼠标挂钩,而不引起鼠标拖拽?

将鼠标钩子移动到与驱动cpu/帧使用的线程不同的线程上。这样就可以在不影响鼠标的情况下减少cpu/帧数