Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
3 / 3 / 1
Регистрация: 06.11.2014
Сообщений: 69

Регистрация нескольких мышек через raw input device

30.06.2018, 15:35. Показов 2738. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, почему при регистрации мышки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int RawInput::initDevices() {
    RAWINPUTDEVICE rawInputDevices[2];
 
    rawInputDevices[0].usUsagePage = 1;
    rawInputDevices[0].usUsage = 2; // mouse
    rawInputDevices[0].dwFlags = 0;
    rawInputDevices[0].hwndTarget = windowHandle;
 
    rawInputDevices[1].usUsagePage = 1;
    rawInputDevices[1].usUsage = 6; // keyboard
    rawInputDevices[1].dwFlags = 0;
    rawInputDevices[1].hwndTarget = windowHandle;
 
    if(RegisterRawInputDevices(rawInputDevices, 2, sizeof(RAWINPUTDEVICE)) == false) {
        MessageBox(0, L"RawInput error.", engineName, MB_ICONERROR);
 
        return 3;
    }
 
    return 0;
}
. если в компьютере более одного устройства управления курсором, то приложение как будто зависает, не реагирует на курсор сразу же. Проблема была обнаружена на ноутбуке, где два устройства управления курсором(touchpad и мышка), так же повторилась на ПК, с двумя мышками. Почему так происходит? Ведь в играх, например, хоть три мышки подключи и двигай их в разную сторону и все будет нормально, как будто их дельты просто складываются. Так вот почему raw input там не может?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.06.2018, 15:35
Ответы с готовыми решениями:

Как определить разные устройства через Raw Input?
Есть пульт ду для презентаций модель Hama "Piccino" Wireless Laser Presenter, на нем есть две кнопки вверх и вниз, они эмулируют нажатия...

С++ WM события и raw input
Здравствуйте, я пишу простой игровой движок на c++ / directx 9. Сегодня я решил, что мне нужна поддержка устройств типа gampad / joystick....

Добавление нескольких строк из нескольких input text ов в БД
Здравствуйте! Проблема в том, что у меня не добавляются строки в БД, они добавляются пустыми постоянно я пробовал менять по-разному, но...

1
20 / 9 / 2
Регистрация: 30.05.2018
Сообщений: 56
05.07.2018, 13:34
Цитата Сообщение от dima sokolov Посмотреть сообщение
Так вот почему raw input там не может?
Я вот тест мыши/клавиатуры давно написал - см. http://www.f2065.ru/soft/ViewKeyCode_ru.htm
Там используется такой же raw input.
И никаких проблем с 2-3 мышами, тачпадами - нету. Тестировал на нескольких компах, ну нет проблемы.
И два джойстика сразу тоже без проблем.

Отличия от твоего кода у меня разве что в раздельном использовании RegisterRawInputDevices - для каждого типа устройств отдельно:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
RAWINPUTDEVICE Rid;
Rid.usUsagePage = 1; // usUsagePage: 1 for generic desktop controls, 2 for simulation controls, 3 for vr, 4 for sport, 5 for game, 6 for generic device, 7 for keyboard, 8 for leds, 9 button
Rid.dwFlags = 0;
Rid.hwndTarget = hWindowMain;
Rid.usUsage = 6; // usUsage when usUsagePage==1:  0 undefined, 1 pointer, 2 mouse, 3 reserved, 4 joystick, 5 game pad, 6 keyboard, 7 keypad, 8 multi-axis controller, 9 Tablet PC controls.
if (RegisterRawInputDevices(&Rid, 1, sizeof(RAWINPUTDEVICE)) == FALSE)
    { MsgErr("select_capture_mode 2", "RegisterRawInputDevices(Keyboard)"); }
Rid.usUsage = 2; // 2-mouse
if (RegisterRawInputDevices(&Rid, 1, sizeof(RAWINPUTDEVICE)) == FALSE)
    { MsgErr("select_capture_mode 2", "RegisterRawInputDevices(Mouse)"); }
Rid.usUsage = 4; // 4-joystick or wheel
if (RegisterRawInputDevices(&Rid, 1, sizeof(RAWINPUTDEVICE)) == FALSE)
    { MsgErr("select_capture_mode 2", "RegisterRawInputDevices(Joy)"); }

Может у тебя проблема вообще не тут, а в обработке получаемых WM_INPUT сообщений?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.07.2018, 13:34
Помогаю со студенческими работами здесь

Посоветуйте книгу про Input Device Drivers для Линукса
Здравствуйте! Пишу драйвер для мыши. Хоть это и USB-устройство, препод требует писать его как Input Device Driver. Если можно, дайте...

Работа с GET-POST через Raw
Возможно ли работать с запросами путем прописывания заголовков как оно есть в фидлере? И если да, то какие минусы данного метода. GET...

Post запрос через raw
Всем привет! Отправляю данные get запросом, но необходимо немного переделать программу под Post и возникла проблема с отправкой Post...

создание нескольких input!
задача заключается в следующем надо! <form enctype='multitpart/Form-data' method="post" action="1.php"> <input type="text"...

Жёсткий диск через коробку по USB. RAW
Рад приветствовать. Я не полностью вник в суть проблемы. Дело такое: имеется коробка для сата винтчестеров на USB. И тут вопрос, либо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru