3 / 3 / 1
Регистрация: 06.11.2014
Сообщений: 69

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, почему при регистрации мышки:
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru