mouse_event почему не ловит клик? if (state & 0x0004) C++
Пишу кликер который должен ловить события мышки и обрабатывая их, выводить результат в консоль.
При указании абсолютного значения (0x8000) - работает только первое по списку, при конкретизации (0x0002, 0x0008) - нет.
Как исправить? Где копать и на что грешить?
if (state & 0x0002)
{
std::cout << "LBM" << endl;
mouse_event(0x0002, 0, 0, 0, 0);
Sleep(50);
}
else if (state & 0x0008)
{
std::cout << "RBM" << endl;
mouse_event(0x0008, 0, 0, 0, 0);
Sleep(50);
}
Ответы (1 шт):
Протупил, мой косяк.
Это и есть корень проблемы.
auto state = GetAsyncKeyState(VK_LBUTTON);
вызов GetAsyncKeyState (VK_LBUTTON) всегда возвращает состояние левосторонней физической кнопки мыши, независимо от того, преобразована она в левостороннюю или правостороннюю логическую кнопку мыши.
Детальнее искать тут: http://vsokovikov.narod.ru/New_MSDN_API/Keyb_input/fn_getasynckeystate.htm
Также ошибка была в auto state Об этом тут: https://learn.microsoft.com/ru-ru/cpp/cpp/auto-cpp?view=msvc-170