示例#1
0
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; }
示例#2
0
文件: Speed.cpp 项目: cwise/TellMe
unsigned long cpurawspeed(int clocks)
{
    struct FREQ_INFO cpu_speed;

    cpu_speed = cpuspeed(clocks);
    return cpu_speed.raw_freq;
}
示例#3
0
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; 
}
示例#4
0
文件: Speed.cpp 项目: cwise/TellMe
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;
}