打算练习Socket的时候用用,最近有点小事情,没时间继续完善,先把写的这些代码贴上来,有空了再完善一下。

 

HardwareInfo.h

  1 #include <stdio.h>
  2 #include <windows.h>
  3 #include <vfw.h>
  4 
  5 #pragma comment(lib,"Vfw32.lib")
  6 #pragma comment(lib,"winmm.lib")
  7 #ifndef VER_NT_WORKSTATION
  8 #define VER_NT_WORKSTATION 1
  9 #endif
 10 
 11 /*
 12     // vc6.0需定义
 13 typedef struct _MEMORYSTATUSEX {
 14     DWORD dwLength;                        // 结构体数据大小 sizeof(_MEMORYSTATUSEX)
 15     DWORD dwMemoryLoad;                    // 内存使用率
 16     LONGLONG ullTotalPhys;                    // 物理内存总大小(单位:字节)
 17     LONGLONG ullAvailPhys;                    // 物理内存可用大小(单位:字节)
 18     LONGLONG ullTotalPageFile;                // 总页面大小(物理内存总大小+硬盘划分的虚拟内存总大小)(单位:字节)
 19     LONGLONG ullAvailPageFile;                // 当前进程能获取的最大内存数(单位:字节)
 20     LONGLONG ullTotalVirtual;                // 当前进程最大内存寻址地址(默认2GB,开启大地址后就是4GB)
 21     LONGLONG ullAvailVirtual;                // 当前进程可用最大内存(单位:字节)
 22     LONGLONG ullAvailExtendedVirtual;
 23 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
 24 */
 25 typedef struct _OSVERSIONINFOEXA1 {
 26     DWORD dwOSVersionInfoSize;
 27     DWORD dwMajorVersion;
 28     DWORD dwMinorVersion;
 29     DWORD dwBuildNumber;
 30     DWORD dwPlatformId;
 31     CHAR  szCSDVersion[128];
 32     WORD  wServicePackMajor;
 33     WORD  wServicePackMinor;
 34     WORD  wSuiteMask;
 35     BYTE  wProductType;
 36     BYTE  wReserved;
 37 } OSVERSIONINFOEXA1, *POSVERSIONINFOEXA1, *LPOSVERSIONINFOEXA1;
 38 
 39 
 40 /*
 41     屏幕截图
 42     lpData:存放截图数据指针
 43     hWnd  :目标窗口,默认为桌面
 44     成功返回截图数据大小,失败返回0.
 45 */
 46 DWORD PrtScr(PCHAR *lpData, HWND hWnd = 0);
 47 
 48 /*
 49     是否有摄像头
 50     有摄像头返回TRUE,否则返回FALSE
 51 */
 52 BOOL HaveCameras(void);
 53 
 54 /*
 55     获取CPU名称
 56     成功返回CPU名称,失败返回NULL(VS2013不支持Debug模式下获取)
 57 */
 58 LPSTR GetCPUName(void);
 59 
 60 /*
 61     获取CPU制造商
 62     成功返回CPU制造商,失败返回NULL(VS2013不支持Debug模式下获取)
 63 */
 64 LPSTR GetCPUManufacturer(void);
 65 
 66 /*
 67     获取声卡名字
 68     成功返回声卡名字,失败返回NULL
 69 */
 70 LPSTR GetSoundCarName(void);
 71 
 72 /*
 73     获取磁盘容量信息
 74     diskPath:盘符
 75     used:已用空间
 76     freed:剩余空间
 77     total:总空间
 78     成功返回TRUE,失败返回FALSE
 79 */
 80 BOOL GetDiskSpaceInfo(LPSTR diskPath, float *used, float *freed, float *total);
 81 
 82 /*
 83     获取运行内存总额
 84     返回运存总额
 85 */
 86 FLOAT GetSysRam(void);
 87 
 88 /*
 89     获取运存已用比例
 90     返回运存已用比例
 91 */
 92 DWORD GetRamProportion(void);
 93 
 94 /*
 95     获取系统启动时间
 96     返回格式化文本字符串
 97 */
 98 LPSTR GetSysStartTime(void);
 99 
100 /*
101     获取系统信息
102     dwMajor:高版本位
103     dwMinjor:低版本位
104     bDesc:是否获取系统描述
105     bBit:是否获取位数
106     bSPVer:是否获取系统补丁包版本
107     bBuildVer:是否获取内部版本
108     成功返回系统信息字符串,失败返回NULL
109 */
110 LPSTR GetSysInfo(DWORD *dwMajor = NULL, DWORD *dwMinjor = NULL, BOOL bDesc = FALSE, BOOL bBit = FALSE, BOOL bSPVer = FALSE, BOOL bBuildVer = FALSE);
View Code

相关文章:

  • 2021-09-06
  • 2022-02-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
猜你喜欢
  • 2021-06-01
  • 2022-12-23
  • 2021-08-09
  • 2021-06-07
  • 2021-09-10
  • 2022-12-23
相关资源
相似解决方案