Деталь Я хочу любит «USB NAME» в этом образе Как я могу получить имя USB-накопителя с C++ WinAPI?
Получение буквы «F» также является полезным.
Обратите внимание, что этот код должен работать на winxp и новее.
Спасибо за помощь!
Деталь Я хочу любит «USB NAME» в этом образе Как я могу получить имя USB-накопителя с C++ WinAPI?
Получение буквы «F» также является полезным.
Обратите внимание, что этот код должен работать на winxp и новее.
Спасибо за помощь!
вы можете использовать комбинацию 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
инструмент
Те похожие на полезные ссылки, но информация, которую вы добавили в свой ответ, очень подозрительна? «Стандарт USB не поддерживает серийный номер» Кто вам сказал? В стандарте USB предусмотрен серийный номер, некоторые производители устройств не соответствуют стандарту и либо вышли из системы, либо использовали один и тот же на каждом устройстве. «это слишком сложно». Это намного сложнее, чем использование функций 'DeviceIOControl' и' SetupDi' *. –
Спасибо @raft htp, что кажется очень полезным, я сделаю свое решение для других после этого! –
Мне тоже нужно это. Я проверяю все ваши ссылки, и я не мог найти, как получить букву диска USB (например, F :). Я могу получить VID и PID, которые важны для меня, но также мне нужно письмо USB для этого устройства, чтобы я мог открывать файлы из него. –
из вашего вопроса не ясно, что вы ВГА e на входе, и что нужно получить на выходе. например, метка тома? вы можете использовать ['GetVolumeInformation'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993 (v = vs.85) .aspx) для этого. но есть ли у вас 'lpRootPathName' на входе? непонятно – RbMm