获取硬盘大小.内存.cpu信息

  1. /**********************************************************
  2. 函数名:GetComputerDeivceInfo
  3. 功  能: 获取电脑硬件相关信息
  4. 参  数: 无参数
  5. 返回值: 无
  6. **********************************************************/
  7. void GetComputerDeivceInfo()
  8. {       
  9.        
  10.     
  11.     
  12.     /*********************读内存盘消息***************************/
  13.     //char strDeivceInfo[512] = {0};                   
  14.     MEMORYSTATUS MemoryStatus;
  15.     MemoryStatus.dwLength = sizeof(MEMORYSTATUS);
  16.     GlobalMemoryStatus(&MemoryStatus);
  17.     char buffer[20];
  18.     sprintf(buffer,"MEMORY:%dMB/r/n",MemoryStatus.dwTotalPhys/1024/1024);
  19.     
  20.     /*********************读取硬盘消息***************************/
  21.     /*实际存储驱动器号的字符串长度*/
  22.     DWORD dwNumBytesForDriveStrings;
  23.     HANDLE hHeap;
  24.     LPSTR lp;
  25.     ULARGE_INTEGER FreeAv,TotalBytes,FreeBytes;
  26.     char strToal[20] = {0};
  27.     char strFree[20] ={0};
  28.     char strspent[20] = {0};
  29.     char strDiskInfo [50] = {0};
  30.     
  31.     for(int nIndex = 'A'; nIndex<'Z'; nIndex++) {
  32.         
  33.         char x[4] = {nIndex,":"} ;
  34.         char strDiskName[FILENAME_MAX] = {0};
  35.         
  36.         sprintf( strDiskName , "%s//" , x);
  37.         
  38.         DWORD dwType                = GetDriveType(strDiskName);
  39.         
  40.         switch(dwType){                  //其实后面还有些东西的..后面删了也就没管了..呵呵...只是判断硬盘if一下子就行了
  41.         
  42.             case DRIVE_FIXED:                           // 硬盘驱动器
  43.                 GetDiskFreeSpaceEx(strDiskName,&FreeAv,&TotalBytes,&FreeBytes);
  44.                 sprintf(strToal,"%uG",TotalBytes.QuadPart/1024/1024/1024);     //总容量
  45.                 sprintf(strFree,"%uG",FreeAv.QuadPart/1024/1024/1024);         //空闲容量
  46.                 sprintf(strspent,"%uG", (TotalBytes.QuadPart/1024/1024/1024) - (FreeAv.QuadPart/1024/1024/1024));//已用
  47.                 
  48.                 sprintf(strDiskInfo,"DiskName:%3sTotal:%3sFree:%3sSpent:%3s/r/n",strDiskName,strToal,strFree,strspent);
  49.                 
  50.                 break;
  51.             
  52.         }       
  53.     }
  54.     /*********************读取CPU消息***************************/     
  55.     char strCpuInfo[128] = {0};
  56.     HKEY hKEY;
  57.     
  58.     LPCTSTR data_Set="HARDWARE//DESCRIPTION//System//CentralProcessor//0//";
  59.     RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY);
  60.     /*定义用户姓名 owner_Get*/
  61.     LPBYTE owner_Get=new BYTE[128]; 
  62.     /*定义数据类型*/
  63.     DWORD            type_1=REG_SZ;   
  64.     /*定义数据长度*/
  65.     DWORD             cbData_1=128;                                                             
  66.     RegQueryValueEx(hKEY,"ProcessorNameString",NULL,&type_1,owner_Get,&cbData_1);
  67.     
  68.     char* c = new char[128];
  69.     //c = (char*)owner_Get;
  70.     memcpy((char*)&c,(char*)&owner_Get,sizeof(c));
  71.     sprintf(strCpuInfo,"CPUTYPE:%s/r/n",c);
  72.     RegCloseKey(hKEY);
  73.     return ;
  74. }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值