如何用 VolInfo 获取逻辑驱动器
2006-07-20 11:38:41 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹

核心提示:本文示例源代码或素材下载 1、如何用 VolInfo 获取逻辑驱动器?2、如何用C#编程修改系统菜单?我试图写一个能列出系统上的驱动器(C:,D:等)的MFC程序,如何用 VolInfo 获取逻辑驱动器,我也需要知道该驱动器是一个硬盘或是光驱,有这样的一个类来获得此信息吗? 没有提供这种信息的MFC类,或者是一
本文示例源代码或素材下载
1、如何用 VolInfo 获取逻辑驱动器?
2、如何用C#编程修改系统菜单?
我试图写一个能列出系统上的驱动器(C:,D:等)的MFC程序,我也需要知道该驱动器是一个硬盘或是光驱。有这样的一个类来获得此信息吗?

有四个基本的函数:GetLogicalDrives, GetLogicalDriveStrings, GetDriveType 和 GetVolumeInformation。第五个是 SetVolumeLabel,如果你愿意,可以用它设置卷标。这些函数都相当简单易懂,为了使用方便起见,我把它们封装到了一个友好的MFC类中:CVolumeMaster,(参见 Figure 2),它可以让你处理CString而不是TCHAR数组。我还写了一个 例子程序:VolInfo.exe,示范了如何使用这个MFC类。你能从本文开始的超链接处下载源代码。Figure 3是VolInfo例子程序在我自己的计算机上运行时显示的详细信息。

Figure 3 详细的驱动器信息
第一个函数,GetLogicalDrives,返回一个DWORD的位掩码(bitmask)值,以告知驱动盘符。“0”表示是驱动器A,“1”表示驱动器B,依次类推。大家知道,英语字母表有26个字母,而DWORD有32位,你们中数学在行的人将快速地推算出:一个DWORD能提供足够大的空间来容纳所有,或者是一些可能的驱动器字母的组合。幸好微软(Redmond)不在西北利亚(古代斯拉夫语的字母有33个字母),CVolumeMaster有一个静态的方法FormatBitMask,它位掩码信息格式化为ASCII----VolInfo程序应用它来显示一条象下面这样的信息:
更多精彩
赞助商链接