打算练习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);