как использовать перемещение мыши в WinAPI без лагов? - PullRequest
0 голосов
/ 01 мая 2018

я надеюсь сделать консоль, когда нажму правую кнопку,

мышь немного опускается

я попробовал этот код,

bool MouseMove(int x, int y)
{
    INPUT input;
    input.type = INPUT_MOUSE;
    input.mi.mouseData = 0;
    input.mi.time = 0;
    input.mi.dx = x;
    input.mi.dy = y;
    input.mi.dwFlags = MOUSEEVENTF_MOVE;
    SendInput(1, &input, sizeof(input));
    return true;
}


HWND hWnd;
HHOOK hMSHook;


LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode >= HC_ACTION)
    {
        if (wParam == WM_RBUTTONUP)
        {
            MouseMove(0, 10);
            return 1;
        }
    }
    return CallNextHookEx(hKBHook, nCode, wParam, lParam);
}

int _tmain() {
    hWnd = ::GetConsoleWindow();
    ShowWindow(hWnd, 0);
    HMODULE hInstance = GetModuleHandle(NULL);
    hMSHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, hInstance, NULL);
    MSG Msg;


    while (GetMessage(&Msg, NULL, 0, 0)) { DispatchMessage(&Msg); }

    return 0;
}

Работает нормально, но если я попробую пару раз,

это вызывает отставание (борьба, медленно, медленно)

кто-нибудь знает, как это исправить?

...