首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么获得本地磁盘的个数

2012-04-05 
如何获得本地磁盘的个数?例如:如果我的计算机内接了两个磁盘,外挂了一个USB磁盘,那么他们的编号依次是Phys

如何获得本地磁盘的个数?
例如:如果我的计算机内接了两个磁盘,外挂了一个USB磁盘,那么他们的编号依次是PhysicalDrive0,PhysicalDrive1,PhysicalDrive2

那如何动态的获得上面的信息呢?我想得到USB的磁盘是PhysicalDrive几?

[解决办法]
有个API,叫啥来着,忘了。查查MSDN。
[解决办法]
是不是这个函数?

Retrieves the instance handle of the module that contains the installable driver. 

HMODULE GetDriverModuleHandle(HDRVR hdrvr);
 

Parameters

hdrvr

Handle of the installable driver instance. The handle must have been previously created by using the OpenDriver function. 

Return Value

Returns an instance handle of the driver module if successful or NULL otherwise.
[解决办法]
转:
您可以通过查询WMI对象来获取驱动器类型。下面是一段例子代码:

SelectQuery query=new SelectQuery("Select * From Win32_LogicalDisk");
ManagementObjectSearcher searcher=new ManagementObjectSearcher(query);

foreach(ManagementBaseObject disk in searcher.Get())
{
this.textBox1.Text+="\r\n"+disk["Name"]+" "+disk["DriveType"];
}

这段代码在我的计算机上的执行结果如下:

C: 3
D: 5
E: 2
Q: 4
R: 4
S: 4
T: 4
U: 4
V: 4
W: 4
X: 4
Y: 4

其中各个数字代表的意义如下:

1 No type
2 Floppy disk
3 Hard disk
4 Removable drive or network drive
5 CD-ROM
6 RAM disk
[解决办法]
Chappell兄不仔细看问题,BS一下!
[解决办法]
GetLogicalDrives
[解决办法]


如果是linux下的话,可以找我


我上次才写了一个获取磁盘序列号的程序,有序列号,就都好说了
[解决办法]
有个笨办法, 一个一个的CreateFile去打开它们, 成功了就计数加一, 最后你就知道一共有多少个硬盘了, 嘿嘿.

热点排行