|
2 / 2 / 1
Регистрация: 17.07.2015
Сообщений: 63
|
|
Подключенные устройства и их список28.04.2017, 17:34. Показов 13633. Ответов 4
Метки нет (Все метки)
Доброго времени суток, форумчане! Необходимо получить список всех подключенных периферийных устройств, которые подключены к компьютеру в текущий момент времени. Необходимо реализовать данный функционал с помощью функций WinAPI.
Находил подобные вопросы с ответами в теме на форуме, но пояснений к тому, что и как используется толком нет. Пробовал по этим же примерам написать код самостоятельно, но это были неудачные попытки. Поэтому решил обратиться за помощью. Не могли бы вы, уважаемые форумчане, помочь мне? Например, какие функции можно использовать и в какой последовательности? Заранее спасибо! PS: пишу в VS2015.
0
|
|
| 28.04.2017, 17:34 | |
|
Ответы с готовыми решениями:
4
Находить все подключенные к компьютеру USB устройства и на усмотрения пользователя их блокировать. Подключенные устройства PC не обнаруживает подключенные устройства при включении |
|
Ушел с форума
|
|
| 28.04.2017, 19:14 | |
|
Ну я, как обычно, буду советовать Setup API. Начинается он с функции SetupDiGetClassDevs -
это формирование списка устройств. Далее их можно перечислять либо по интерфейсам (да, разные устройства могут иметь один и тот же интерфейс) - SetupDiEnumDeviceInterfaces, либо по классам - SetupDiEnumDeviceInfo. На каждом шаге перечисления можно вызывать функцию SetupDiGetDeviceRegistryProperty, получая разнообразную информацию - имя, производитель, тип шины, управляющая служба, Hardware ID / Compatible ID и т.д., все то же самое, что отображает стандартный "диспетчер устройств". Все эти функции хорошо документированы в MSDN. В качестве хорошего примера их использования могу порекомендовать исходники утилиты devcon, они есть где-то в сэмплах Microsoft.
1
|
|
|
2 / 2 / 1
Регистрация: 17.07.2015
Сообщений: 63
|
||||||
| 29.04.2017, 00:10 [ТС] | ||||||
|
Убежденный, спасибо за Ваш ответ! Воспользовался документацией MSDN, но столкнулся со следующей проблемой: когда я хочу получить информацию о каком-либо устройстве, у меня ничего не получается (ошибка 1784 – The supplied user buffer is not valid for the requested operation в функции SetupDiGetDeviceRegistryProperty). Можно узнать, что я делаю не так? Код ниже.
0
|
||||||
|
Ушел с форума
|
|
| 29.04.2017, 09:20 | |
|
Ты в SetupDiGetDeviceRegistryProperty передаешь 0 в качестве выходного буфера
(5-ый по счету параметр функции). Она же "не знает", куда возвращать данные...
1
|
|
|
2 / 2 / 1
Регистрация: 17.07.2015
Сообщений: 63
|
||||||
| 29.04.2017, 10:12 [ТС] | ||||||
|
Убежденный, с данной ошибкой разобрался. Возникла другая проблема : в цикле вызываю SetupDiEnumDeviceInfo, затем SetupDiGetDeviceRegistryProperty. Если в SetupDiGetDeviceRegistryProperty третьим параметром стоит SPDRP_FRIENDLYNAME, то везде выдает ошибку 13, говорящую о том, что свойство недоступно.
В чем проблема, неужели у всех устройств данное свойство недоступно? И еще возник вопрос: правильно ли я понимаю, что сейчас я вывожу все устройства системы, независимо от их класса? Если да, то можно ли как-нибудь выводить информацию об устройствах определенного класса?
0
|
||||||
| 29.04.2017, 10:12 | |
|
Помогаю со студенческими работами здесь
5
Никакие устройства, подключенные в USB, не видно!
Отобразить через MMC-оснастку все подключенные устройства Ноут иногда не распознаёт устройства, подключенные через usb hub Что видит провайдер?, или как скрыть устройства подключенные к сети Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|