回答
你可以使用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字母,所以我可以从中打开文件。 –
- 1. 如何获取USB存储设备的设备名称?
- 2. 如何使用数据存储获取条目的ID /名称
- 3. 如何在c#中获取存储过程的参数名称
- 4. 如何使用WinAPI/C获取显示器/显示设备名称#
- 5. 如何获取调用存储过程的数据库名称?
- 6. 如何获取WinAPI错误的符号名称?
- 7. 如何在调用sql存储过程时获取列名称
- 8. 如何iBatis的春+获取存储过程的名称
- 9. 如何获取存储在NSDocumentsDirectory中的文件的名称?
- 10. 使用BCP QueryOut获取存储过程的列名称
- 11. Python:获取USB闪存驱动器设备的名称[windows]
- 12. 获取C#中的证书存储名称列表
- 13. 如何使用WinAPI获取MessageBox图标
- 14. C#:如何通过存储在String中的名称获取对象?
- 15. Android:使用GraphRequest获取并存储Facebook名称newMeRequest
- 16. 如何在.Net S3 SDK中按名称获取存储桶?
- 17. 如何使用Javascript获取名称类?
- 18. 如何使用JavaScript获取swf名称?
- 19. 如何从c#使用win32获取可访问的名称?
- 20. 如何使用Win32 Handle获取C++文件的名称?
- 21. 如何使用C#获取asp.net Web控件的ID名称
- 22. 如何使用C++获取计算机的专有名称(DN)
- 23. 如何使用C#获取XML中的节点名称?
- 24. 获取连接的USB设备的端口名称
- 25. 如何使用WINAPI(C++)
- 26. 获取连接到Windows CE的USB驱动器名称设备
- 27. 如何获取具有可见窗口的任何进程的名称 - WinAPI?
- 28. 如何在C#中使用.exe获取应用程序名称?
- 29. 如何使用LoginControl存储用户名和名称?
- 30. mercurial:任何获取存储库名称的命令或python api
从你的问题,你甲肝什么不清楚在输入上,以及需要输出什么。例如卷标?你可以使用['GetVolumeInformation'](https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v = vs.85).aspx)。但是你有'lpRootPathName'输入吗?不清楚 – RbMm