#include "stdafx.h"
using namespace std;
struct WindowVersion{
DWORD marjorVer;
DWORD minorVer;
DWORD buildNumber;
};
class SystemInfo{
public:
SystemInfo();
~SystemInfo();
std::wstring GetSystemVersion();
std::wstring GetComputerName();
int GetPhysicalMemorySize();
int GetCurrentMemoryUsePercent();
private:
WindowVersion m_version;
std::wstring convertVersionToWstring(int majorVer,int minorVer,int buildNumber);
std::wstring m_computer_name;
int m_memory_size;
};
#include "stdafx.h"
#include "SystemInfo.h"
#include <iosfwd>
#include <sstream>
using namespace std;
SystemInfo::SystemInfo()
{
}
SystemInfo::~SystemInfo()
{
}
std::wstring SystemInfo::GetSystemVersion()
{
WindowVersion wv;
OSVERSIONINFOW ver_info;
ver_info.dwOSVersionInfoSize = sizeof(ver_info);
GetVersionEx(&ver_info);
wv.marjorVer = ver_info.dwMajorVersion;
wv.minorVer = ver_info.dwMinorVersion;
wv.buildNumber = ver_info.dwBuildNumber;
m_version = wv;
std::wstring version_ = convertVersionToWstring(wv.marjorVer,wv.minorVer,wv.buildNumber);
return version_;
}
std::wstring SystemInfo::GetComputerName()
{
DWORD size_ = 0;
TCHAR ComputerName[MAX_COMPUTERNAME_LENGTH];
::GetComputerNameW(ComputerName,&size_);
m_computer_name=ComputerName;
return m_computer_name;
}
int SystemInfo::GetPhysicalMemorySize()
{
MEMORYSTATUS Mem;
GlobalMemoryStatus(&Mem);
int memory_use = (double)(Mem.dwTotalPhys)/(double)(1024*1024*1024);
m_memory_size = memory_use;
return memory_use;
}
int SystemInfo::GetCurrentMemoryUsePercent()
{
MEMORYSTATUS Mem;
GlobalMemoryStatus(&Mem);
return Mem.dwMemoryLoad;
}
std::wstring SystemInfo::convertVersionToWstring(int majorVer,int minorVer,int buildNumber)
{
std::wstringstream oss_;
oss_ <<majorVer<< L"."<<minorVer<<L"."<<buildNumber;
std::wstring wstr=oss_.str();
return wstr;
}