这个也是从某位大师那里直接转来的。。。。对我太有用了,,感激涕零!!!
因为工作需要,要写一个读取U盘PID,VID信息的程序,在网上找了很久都没有发现有相关的资料.相关的工作也搁置了很久,真是亏对公司^_^
还好终于让我慢慢揣摩出来一点端倪,在这分享一下.其实用DDK会比较容易得到.但是DDK编译设置又比较麻烦,而且我是要用BCB开发,所以也先不往那方面发展了.现在就开始讲讲.
1.获取U盘盘符.
这个比较简单,首先列举一下系统的磁盘.如果属性是DRIVE_REMOVABLE那么就是可移动磁盘.排除软盘,那么剩下的就是U盘咯.
int __fastcall C_BA580_PATH::GetUsbDevice(AnsiString* strUsbDriverName)
{
char lpBuffer[MAX_DRIVER_STRING_LENGHT];
char*lpSingleDevice;
DWORD nBufferLength = MAX_DRIVER_STRING_LENGHT;
DWORD dwSignleDeviceBufferIndex =0, dwDeviceNum =0;
lpSingleDevice = (char*)malloc(sizeof(char)* MAX_DRIVER_STRING_LENGHT);
if(lpSingleDevice == NULL)
{
ShowMessage("系统分配内存错误");
return 0;
}
memset(lpSingleDevice,0x0,MAX_DRIVER_STRING_LENGHT)