128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
1 | |
Реагирование программой на органы управления не стандартных USB устройств13.11.2018, 09:39. Показов 1148. Ответов 5
Метки нет (Все метки)
Доброго времени суток.
Для чего нужно, если кому интересно
Хочу написать конфигуратор для своих целей, и мне кажется, что было бы удобно использовать для работы с ним 3D-манипулятор на подобии SpaceMouse Wireless 3DX-700066, но её стоимость почти 13 килорублей, поэтому, до её покупки хотелось бы разобраться, смогу ли я её встроить в свою программу, поэтому решил сначала отработать вопрос на GamePad'ах
Собственно вопрос такой - приходят ли сообщения на подобии WM_... при использовании кнопок USB устройств отличных от мыши и клавиатуры? И, если приходят, то какие это сообщения? Как проверить? Интернет перерывал, нашел по сути всего три ветки: 1) DirectInput (от DirectX) 2) SetupAPI 3) и команды определения USB устройств на подобии WM_DEVICECHANGE - но они мне, я так понимаю не нужны для обработки информации DirectInput хотелось бы оставить на крайний случай. SetupAPI не разбирался особо (ну, точнее не очень то получилось ), но я так понял это слишком замысловато для моих целей. Вообще, происходит ли вещание Windows такой информации в окно?
0
|
13.11.2018, 09:39 | |
Ответы с готовыми решениями:
5
На мониторе моргает надпись "Органы управления монитора заблокированы" Переодически перестают работать USB порты на материнке после подключения устройств к USB корпуса Отображение стандартных элементов управления USB 2.0 и USB 3.0 - питание устройств |
13.11.2018, 14:42 | 2 |
Делaл как-то утилиту «Жестурь» на RawInput…
Думаю, там могут быть некоторые нужные фрагменты. Не по теме: Коротко: В Windows несколько подключенных мышек дублируют друг друга.
1
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
14.11.2018, 08:32 [ТС] | 3 |
Точно, ведь где-то встречал на англоязычном формуе разработчиков игр информацию о двух мышках и некорректной работе, но почему-то пролистнул. Буду разбираться с RAWInput =)
0
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
20.11.2018, 09:51 [ТС] | 4 |
Так, вопрос в догонку... я не совсем понял.
Вот если у меня есть две мышки, я могу только одну из них использовать как RAWinputDevice? Ну, условно говоря, вот список моих подключённых устройств:
1) RIM_TYPEMOUSE usUsage: 0, usUsagePage: 0 \\?\HID#VID_09DA&PID_9090&MI_01#7&344b04dd&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}
2) RIM_TYPEKEYBOARD usUsage: 0, usUsagePage: 12 \\?\HID#VID_09DA&PID_9090&MI_00&Col01#7&1073c71b&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} 3) RIM_TYPEHID usUsage: 165, usUsagePage: 65440 \\?\HID#VID_09DA&PID_9090&MI_00&Col04#7&1073c71b&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} 4) RIM_TYPEHID usUsage: 1, usUsagePage: 12 \\?\HID#VID_09DA&PID_9090&MI_00&Col03#7&1073c71b&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} 5) RIM_TYPEMOUSE usUsage: 0, usUsagePage: 0 \\?\HID#VID_09DA&PID_9090&MI_01#7&25c3b316&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd} 6) RIM_TYPEKEYBOARD usUsage: 0, usUsagePage: 12 \\?\HID#VID_09DA&PID_9090&MI_00&Col01#7&129396d8&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} 7) RIM_TYPEHID usUsage: 165, usUsagePage: 65440 \\?\HID#VID_09DA&PID_9090&MI_00&Col04#7&129396d8&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} 8) RIM_TYPEHID usUsage: 1, usUsagePage: 12 \\?\HID#VID_09DA&PID_9090&MI_00&Col03#7&129396d8&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} 9) RIM_TYPEHID usUsage: 1, usUsagePage: 12 \\?\HID#VID_09DA&PID_0260&MI_01&Col02#7&5b865a5&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} 10) RIM_TYPEKEYBOARD usUsage: 0, usUsagePage: 12 \\?\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} 11) RIM_TYPEKEYBOARD usUsage: 0, usUsagePage: 12 \\?\HID#VID_09DA&PID_0260&MI_00#7&34472008&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} 12) RIM_TYPEMOUSE usUsage: 0, usUsagePage: 0 \\?\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd} Так вот пункты 1,2 и 3 - это мышь №1, пункты 5,6 и 7 - это мышь №2. Причём это две подключённые USB мышки. У них совпадают все usUsage и usUsagePage, можно ли зарегистрировать только одну мышку как RAWInput устройство? Или, если нельзя, смогу ли я понимать, что WM_INPUT приходит от конкретного устройства?
0
|
20.11.2018, 23:07 | 5 |
Нe совсем понял вопроса…
Когда я начал работать с RawInput, тоже строил список, чтобы определить основное устройство. По-моему, легче составить список всех мышек и при их активности подсвечивать строчку с индексом конкретной мышки, чтобы пользователь наглядно видел визуально, какая из мышек где в списке значится и мог галочкой её отметить как особенную…
0
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
21.11.2018, 09:38 [ТС] | 6 |
Ну, устройство, как особенное, регистрируется при помощи функции RegisterRawInputDevices, в которую передаётся переменная типа RAWINPUTDEVICE,а в ней то данных всего 4 (dwFlags, hwndTarget, usUsage, usUsagePage), и, я так понял, что данные об устройстве именно в usUsage, usUsagePage, но они для обеих подключенных мышек одинаковые (да ещё и неверные ).
Поэтому и вопрос, а как только одно устройство из списка зарегистрировать как RAWInput устройство? Возможно это?
0
|
21.11.2018, 09:38 | |
21.11.2018, 09:38 | |
Помогаю со студенческими работами здесь
6
"Устройство USB не опознано. Одно из подключенных к этому компьютеру USB-устройств работает неправильно и Windows не удается опознать его..." Создание таблицы без использования стандартных элементов управления Как создать свой элемент управления, комбинирующий несколько стандартных перехват управления программой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |