如何用C++获取各种系统相关信息,如CPU使用率,硬盘使用空间,内存使用大小以及操作系统名等等 用Windows API获取系统信息,计算CPU占用率http://spaces.abccba.net/cache/82.htm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CSystemInfoDialog::OnInitDialog() //对话框的初始化函数 { CString DisplayString; SYSTEM_INFO SystemInfo; //检测CPU的类型 ::GetSystemInfo(&&SystemInfo); //WinAPI函数,用以取得系统信息 if (SystemInfo.wProcessorArchitecture = = PROCESSOR_ARCHITECTURE_INTEL) { switch (SystemInfo.wProcessorLevel) { //本程序只演示取得Intel系列CPU的方法 …… //省略对386及486机器的检测 case 5: DisplayString= "Pentium"; break; case 6: DisplayString ="Pentium (II/Pro)"; break; } } m_CpuType.SetWindowText(DisplayString); //变量m_CpuType是一个CStatic框 //检测内存状态 MEMORYSTATUS MemoryStatus; //内存的现行状态结构 MemoryStatus.dwLength=sizeof(MEMORYSTATUS); //填充结构的大小 ::GlobalMemoryStatus(&&MemoryStatus); //取得内存的状态 char buffer[20]; wsprintf(buffer,"%d bytes",MemoryStatus.dwTotalPhys); //dwTotalPhys指示物理内存字节 m_Memory.SetWindowText(buffer); //变量m_Memory是一个CStatic框 //检测操作系统版本 OSverSIONINFO versionInfo; //操作系统版本信息结构 versionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); ::GetVersionEx (&&versionInfo); //取得当前操作系统信息 if (versionInfo.dwPlatformId = = VER_PLATFORM_WIN32_NT) { //如果操作系统是Windows NT …… //本文略过对NT系统的检测操作 } else if (versionInfo.dwPlatformId = = VER_PLATFORM_WIN32_WINDOWS) { //如果操作系统是Windows 9X系统 DisplayString="Windows 95"; if ((versionInfo.dwMajorVersion >= 4)&&&& (versionInfo.dwMinorVersion > 0)) { //版本4.1以上系统为Windows98系列 DisplayString="Windows 98"; char VersionBuffer[20]; //取得操作系统的版本号 wsprintf(VersionBuffer,"%d.%d",versionInfo.dwMajorVersion,versionInfo.dwMinorVersion); m_Version.SetWindowText(VersionBuffer); //在对话框上显示版本信息 } } m_System.SetWindowText(DisplayString); //在对话框上显示操作系统类 //检测鼠标 int MouseInstall=::GetSystemMetrics(SM_MOUSEPRESENT); if(MouseInstall!=0) m_Mouse.SetWindowText("有"); int cx,cy; //取得当前显示分辨率 cx=::GetSystemMetrics(SM_CXSCREEN); //水平分辨率 cy=::GetSystemMetrics(SM_CYSCREEN); //垂直分辨率 char Display[20]; wsprintf(Display,"%d %d",cx,cy); m_Display.SetWindowText(Display); //在对话框上显示分辨率信息 //取得当前系统的颜色设置 CDC DC=this->GetDC(); int nColors=DC->GetDeviceCaps(NUMCOLORS); if(nColors!=-1) wsprintf(Display,"%d 色",nColors); else wsprintf(Display,"高彩或真彩"); m_ColorDeep.SetWindowText(Display); //取得系统时间 SYSTEMTIME SystemTime; ::GetSystemTime(&&SystemTime); wsprintf(Display,"%d-%d-%d",SystemTime.wMonth,SystemTime.wDay,SystemTime.wYear); m_SystemDate.SetWindowText(Display); //取得Windows系统的路径 ::GetWindowsDirectory(Display,20); m_SystemPath.SetWindowText(Display); return TRUE; } GetDriveTypeGetDiskFreeSpaceGetSystemMetrics 请问2楼的大侠,Windows 2000/2003系统的信息也可以通过versionInfo.dwMajorVersion,versionInfo.dwMinorVersion来获取吗? to:ouyh12345 可否把你的几个函数写具体点呢?他们的参数应该是什么样的呢? 其中,GetDriverType是不是要取磁盘的类型呢?那我要获取系统的所有磁盘应该怎么取 ? 函数都知道了,还不会查msdn? 真心求帮我细致分析下:下面的"线程启动"是怎么回事情,谢谢你(帮顶有分)真心求耐心分析 IXMLDOMDocuement和IXMLDocument到底有什么区别? VC基于对话框绘图问题 IE背景透明 BUtton常用方法~~~~ 关于Socket中TCP传输时的缓冲问题。 自己写的浏览器如何屏蔽掉脚本错误?? ? ★ 如何让Dialog中Static控件在DoModal()时根据需要更改? ***如何使一个按钮在picture控件之上*** 在对话框里显示一副位图的问题,菜鸟急问! VC如何取操作系统发布时间,急!!! 如何做一个带SCROOL的曲线显示图!
GetDiskFreeSpace
GetSystemMetrics
ouyh12345
可否把你的几个函数写具体点呢?他们的参数应该是什么样的呢? 其中,GetDriverType是不是要取磁盘的类型呢?那我要获取系统的所有磁盘应该怎么取 ?