W
Wertil
У меня проблема. нужно написать прогу на Delphi чтобы она выводила составляющие компоненты ПК.
например: кол-во памяти и т.д. ,процессор.
например: кол-во памяти и т.д. ,процессор.
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
int main(void){
FILE *OutFile;
int i=1;
MEMORY_BASIC_INFORMATION MemInfo;
PVOID BaseAddress=NULL;
OutFile=fopen("Memory.txt", "w");
if(OutFile==NULL){
printf("Unable to create output file...\n\nStrike any key to exit...");
while(!kbhit());
return 0;
}
fprintf(OutFile,"Карта памяти :\n\n");
printf("Process started...\n");
//Вызов VirtualQuery и запись в файл результатов:
while( VirtualQuery(BaseAddress, &MemInfo, sizeof(MemInfo)) ){
fprintf(OutFile,"Регион No %i\n",i++);
fprintf(OutFile," Адресс начала региона : %i\n" ,MemInfo.BaseAddress);
fprintf(OutFile," Размер региона : %i\n" ,MemInfo.RegionSize);
fprintf(OutFile," Состояние региона : ");
switch (MemInfo.State){
case MEM_COMMIT :fprintf(OutFile,"Занят (MEM_COMMIT)\n");break;
case MEM_FREE :fprintf(OutFile,"Свободен (MEM_FREE)\n");break;
case MEM_RESERVE :fprintf(OutFile,"Зарезервирован (MEM_RESERVE)\n");break;
default :fprintf(OutFile,"Неопределен (UNDEFINED)\n");
}
fprintf(OutFile," Тип региона : ");
switch (MemInfo.Type){
case MEM_IMAGE :
fprintf(OutFile,"MEM_IMAGE\n");break;
case MEM_MAPPED :
fprintf(OutFile,"MEM_MAPPED\n");break;
case MEM_PRIVATE :
fprintf(OutFile,"MEM_PRIVATE\n");break;
default :fprintf(OutFile,"Неопределен (UNDEFINED)\n");
}
fprintf(OutFile,"==============================================\n");
BaseAddress=PVOID(int(BaseAddress)+int(MemInfo.RegionSize));
}
printf("\nDone. File saved to 'Memory.txt' in program's directory\
\n\nStrike any key to close...");
while(!kbhit());
fclose(OutFile);
return 1;
}
#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;
}
Обучение наступательной кибербезопасности в игровой форме. Начать игру!