2017-02-18 2 views
1

Деталь Я хочу любит «USB NAME» в этом образе enter image description hereКак я могу получить имя USB-накопителя с C++ WinAPI?


Получение буквы «F» также является полезным.
Обратите внимание, что этот код должен работать на winxp и новее.
Спасибо за помощь!

+1

из вашего вопроса не ясно, что вы ВГА e на входе, и что нужно получить на выходе. например, метка тома? вы можете использовать ['GetVolumeInformation'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993 (v = vs.85) .aspx) для этого. но есть ли у вас 'lpRootPathName' на входе? непонятно – RbMm

ответ

-1

вы можете использовать комбинацию DeviceIOControl и SetupDiGetDeviceInterfaceDetail

полный исходный код на

(https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/a87c4cc3-bfc1-4664-8317-af30f03a715e/get-usb-drive-details?forum=wdk не пытаются получить серийный номер, так как некоторые производители USB устройств ди не поддерживает серийные номера)

Другие возможности (проще) использовать комбинацию GetDriveType() и GetDisksProperty() исходный код находится на https://www.codeproject.com/Articles/6559/How-To-get-the-usbdisk-s-drive-letter-properly

очень простая версия в How to retrieve removable storage drive letter using C/C++

еще одна возможность на How to list physical disks? и GetLogicalDrives() for loop (использует GetLogicalDrive (возвращает битовая, который должен быть переведен на общих букв A:, B: C:,...)) < - это является слишком сложным

не в C++ можно использовать wmic инструмент

+0

Те похожие на полезные ссылки, но информация, которую вы добавили в свой ответ, очень подозрительна? «Стандарт USB не поддерживает серийный номер» Кто вам сказал? В стандарте USB предусмотрен серийный номер, некоторые производители устройств не соответствуют стандарту и либо вышли из системы, либо использовали один и тот же на каждом устройстве. «это слишком сложно». Это намного сложнее, чем использование функций 'DeviceIOControl' и' SetupDi' *. –

+0

Спасибо @raft htp, что кажется очень полезным, я сделаю свое решение для других после этого! –

+0

Мне тоже нужно это. Я проверяю все ваши ссылки, и я не мог найти, как получить букву диска USB (например, F :). Я могу получить VID и PID, которые важны для меня, но также мне нужно письмо USB для этого устройства, чтобы я мог открывать файлы из него. –

Смежные вопросы