用下面代码可以找出所有可移动设备的盘符和名称,获取其它信息需要用WMI,比较复杂。
char root[] = "A:\\";
for (*root='C'; *roor<='Z'; *roor++)
{
if (GetDriveType() == DRIVE_REMOVABLE)
{
// *root是一个可移动设备的盘符
char name[MAX_PATH];
GetVolumeInformation(root, name, MAX_PATH, NULL, NULL, NULL, NULL, 0);
// name是该盘的名称。
}
}
char root[] = "A:\\";
for (*root='C'; *roor<='Z'; *roor++)
{
if (GetDriveType() == DRIVE_REMOVABLE)
{
// *root是一个可移动设备的盘符
char name[MAX_PATH];
GetVolumeInformation(root, name, MAX_PATH, NULL, NULL, NULL, NULL, 0);
// name是该盘的名称。
}
}
解决方案 »
- 求指导一下
- 为什么在SetWaitableTimer里面,64位的时间必须是个负数?
- 提问怎样抓获POST的内容
- CoInitial 尚未呼叫错误
- 请问如何在程序中改变窗体的状态-最大化、最小化。
- 程序写累了,给男性的程序员朋友们开心一下子吧,[[超强笑话]]保险套广告
- 在vc6.0下如何自定义消息
- 在一个程序中,进程或主线程的STACK大小是多少?另外的线程的STACK大小是多少?
- 一个小.小.小.小.小问题,请诸位高手帮一把!!!
- 有谁在.net下用过CJLibrary吗?请教一个问题
- 如何在一个VC应用程序中分配超过2G字节的内存空间
- 求救各位兄弟姐妹:由CCmdTarget直接派生的类中怎么不能使用用户自定义的消息????
for (*root='C'; *roor<='Z'; *roor++)
应该是:
for (*root='C'; *root<='Z'; *root++)
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER Control Code
Retrieves the serial number of a USB device.BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);