• WinApi学习笔记获取电脑中磁盘信息


    #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);
    }
  • 相关阅读:
    linux 静态库和动态库(共享库)的制作与使用
    实现linux mkdir命令
    行间距和文本样式
    单位和字体
    html标签2
    css层叠样式表
    html标签
    html简介
    数据数组
    Redis的使用
  • 原文地址:https://www.cnblogs.com/liulun/p/1570336.html
Copyright © 2020-2023  润新知