#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#define BUFSIZE 1024
void main(void)
{
CHAR SzLogicalDriveStrings[BUFSIZE];
PCHAR SzDrive;
//把这个数组置空
ZeroMemory(SzLogicalDriveStrings,BUFSIZE);
//执行完后SzLogicalDriveStrings里存的是几个磁盘的字符串
GetLogicalDriveStrings(BUFSIZE-1,SzLogicalDriveStrings);
SzDrive = (PCHAR)SzLogicalDriveStrings;
do
{
MessageBox(NULL,SzDrive,"硬盘",MB_OK);
SzDrive +=(lstrlen(SzDrive)+1);//lstrlen返回字符串的字符长度
}
while(*SzDrive !='\x00');//当内存中的数据为空时退出,前面置空的
}
以上是通过GetLogicalDriveStrings函数获取硬盘信息 还可以通过FindFirstVolume和FindNextVolume获取硬盘信息
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#define BUFSIZE 1024
LPSTR GetDirverInfo(LPSTR szDrive)
{
UINT uDriveType;
uDriveType = GetDriveType(szDrive);
switch(uDriveType)
{
case DRIVE_UNKNOWN:
return "未知\n";
break;
case DRIVE_NO_ROOT_DIR:
return "无效\n";
break;
case DRIVE_REMOVABLE:
return "可被移除\n";
break;
case DRIVE_FIXED:
return "不能被移除\n";
break;
case DRIVE_REMOTE:
return "网络上的\n";
break;
case DRIVE_CDROM:
return "是个CD\n";
break;
case DRIVE_RAMDISK:
return "是U盘吧";
break;
default:
break;
}
}
int main(void)
{
CHAR buf[BUFSIZE];
CHAR myMessage[BUFSIZE];
HANDLE hVol;
BOOL flag;
hVol = FindFirstVolume(buf,BUFSIZE);
MessageBox(NULL,GetDirverInfo(buf),"硬盘",MB_OK);
while(FindNextVolume(hVol,buf,BUFSIZE))
{
MessageBox(NULL,GetDirverInfo(buf),"硬盘",MB_OK);
}
flag = FindVolumeClose(hVol);
return (flag);
}