Вопрос Отслеживание мышки

Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2021
Сообщения
31
Реакции[?]
1
Поинты[?]
0
как можно отслеживать дельту прокрута колесика мышки? Типо как можно узнать на сколько прокрутили колесико и куда именно? (C++)
 
godsystem
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2022
Сообщения
293
Реакции[?]
45
Поинты[?]
2K
sigma:
#include <iostream>
#include <Windows.h>

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode >= 0) {
        if (wParam == WM_MOUSEWHEEL) {
            int delta = GET_WHEEL_DELTA_WPARAM(wParam);
            if (delta > 0) {
                std::cout << "Wheel scrolled up: " << delta << std::endl;
            }
            else if (delta < 0) {
                std::cout << "Wheel scrolled down: " << -delta << std::endl;
            }
        }
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

int main() {
    HHOOK hook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);
    if (hook == NULL) {
        std::cerr << "Failed to set hook!" << std::endl;
        return -1;
    }

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0) != 0) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    UnhookWindowsHookEx(hook);

    return 0;
}
 
Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2021
Сообщения
31
Реакции[?]
1
Поинты[?]
0
sigma:
#include <iostream>
#include <Windows.h>

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode >= 0) {
        if (wParam == WM_MOUSEWHEEL) {
            int delta = GET_WHEEL_DELTA_WPARAM(wParam);
            if (delta > 0) {
                std::cout << "Wheel scrolled up: " << delta << std::endl;
            }
            else if (delta < 0) {
                std::cout << "Wheel scrolled down: " << -delta << std::endl;
            }
        }
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

int main() {
    HHOOK hook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);
    if (hook == NULL) {
        std::cerr << "Failed to set hook!" << std::endl;
        return -1;
    }

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0) != 0) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    UnhookWindowsHookEx(hook);

    return 0;
}
с DLL (inject) будет работать?
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Похожие темы
Сверху Снизу