Нашёл пример в гугле. Вот что у меня получилось:
C++ (Qt)
void MainWindow::getRamInfo()
{
QString ramCount;
// Get memory status
MEMORYSTATUS theStatus;
ZeroMemory(&theStatus,sizeof(theStatus));
theStatus.dwLength = sizeof(theStatus);
GlobalMemoryStatus(&theStatus);
DWORD dwRAM = (DWORD)(theStatus.dwTotalPhys/(1024*1024));
if(theStatus.dwTotalPhys != dwRAM*1024*1024)
++dwRAM;
DWORD dwUsedRAM = (DWORD)(theStatus.dwMemoryLoad);
/******************/
int mem = dwRAM;
QString sMem;
sMem.setNum(mem);
label_ramAmountI->setText(sMem + " Mb"); // Total RAM
progressBar_ramUsage->setValue(dwUsedRAM); // USED RAM in %
/********************/
}
Только есть пару вопросов,
1. Не понимаю в чём смысл этих строчек?
C++ (Qt)
if(theStatus.dwTotalPhys != dwRAM*1024*1024)
++dwRAM;
2. MSDN пишет, что вместо GlobalMemoryStatus лучше использовать GlobalMemoryStatusEx. Вот только у меня не компилируется с GlobalMemoryStatusEx
error: `MEMORYSTATUSEX' was not declared in this scope
Как это исправить?