#include "stdafx.h"
#include <Windows.h>
#include <conio.h>
#define DIV 1024
#define WIDTH 10
using namespace std;
char *RTO(char *Str){
char *Str2=new char[strlen(Str)];
CharToOem(Str,Str2);
Str=Str2;
return Str;
}
int _tmain(int argc, _TCHAR* argv[])
{ SYSTEM_INFO Info;
MEMORYSTATUS stat;
GetSystemInfo(&Info);
printf(RTO("Системная информация: \n"));
printf(RTO(" OEM ID: %u\n"), Info.dwOemId);
printf(RTO(" Количество процессоров: %u\n"),Info.dwNumberOfProcessors);
printf(RTO(" Архитектура процессора: "));
switch(Info.wProcessorArchitecture){
case PROCESSOR_ARCHITECTURE_UNKNOWN : printf(RTO("Неизвестен\n"));break;
case PROCESSOR_ARCHITECTURE_INTEL :
printf("INTEL %i\n",Info.wProcessorLevel);break;
case PROCESSOR_ARCHITECTURE_MIPS :
printf("MIPS %i\n",Info.wProcessorLevel);break;
case PROCESSOR_ARCHITECTURE_ALPHA :
printf("ALPHA %i\n",Info.wProcessorLevel);break;
case PROCESSOR_ARCHITECTURE_PPC :
printf("PPC %i\n",Info.wProcessorLevel);break;
case PROCESSOR_ARCHITECTURE_IA64 :
printf("IA64 %i\n",Info.wProcessorLevel);break;
case PROCESSOR_ARCHITECTURE_AMD64 :
printf("AMD 64\n");break;
default : printf(RTO("Неизвестен\n"));
}
printf(RTO(" Активная маска процессора: %u\n"),Info.dwActiveProcessorMask);
printf(RTO(" Размер страницы: %u Кб\n"), Info.dwPageSize);
printf(RTO(" Минимальный адресс приложения: 0x%lx\n"),Info.lpMinimumApplicationAddress);
printf(RTO(" Максимальный адресс приложения: 0x%lx\n"),Info.lpMaximumApplicationAddress);
printf("\n *** \n");
GlobalMemoryStatus (&stat);
printf(RTO("\nСостояние памяти:\n"));
printf(RTO(" Процент используемой памяти: %ld%%\n"),stat.dwMemoryLoad);
printf(RTO(" Всего %*ld Кб физ. памяти\n"),WIDTH, stat.dwTotalPhys/DIV);
printf(RTO(" Всего %*ld Кб свободной физ. памяти\n"),WIDTH, stat.dwAvailPhys/DIV);
printf(RTO(" Всего %*ld Кб файла подкачки\n"),WIDTH, stat.dwTotalPageFile/DIV);
printf(RTO(" Всего %*ld Кб файла подкачки доступно\n"),WIDTH, stat.dwAvailPageFile/DIV);
printf(RTO(" Всего %*ld Кб виртуальной памяти\n"),WIDTH, stat.dwTotalVirtual/DIV);
printf(RTO(" Всего %*ld Кб свободной виртуальной памяти\n"),WIDTH, stat.dwAvailVirtual/DIV);
while(!_kbhit());
return 0;
}