Скоро диплом помогите, кто может

  • Автор темы Wertil
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

Wertil

#1
У меня проблема. нужно написать прогу на Delphi чтобы она выводила составляющие компоненты ПК.
например: кол-во памяти и т.д. ,процессор.
 
B

Barmutik

#2
Так нужно написать или подсказать как писать?

Ну например для памяти: GlobalMemoryStatus
 
W

Wertil

#3
если у кого-то есть исходники то пишите буду рад
 
B

Barmutik

#5
Тогда прямая дорога на сайты и поиск разных компонент которые выдают кучу инфы о компьютере и железе ...
 
W

Wertil

#6
Вот эта ф-я GlobalMemoryStatus какие у нее параметры???
 
B

Barmutik

#7
Прямая дорога в MSDN! ну или хотя бы в банальный Delphi MS SDK Help...
 
W

Wertil

#8
Дело в том что у нас в инстетуте не установлен MSDN
 
B

Barmutik

#9
Ну а Delphi установлен? В его help-файлах это тоже есть...
 
W

Wertil

#10
У тебя есть что нибудь конкректное по этой теме.????????
 
W

Wertil

#11
У кого нибудь есть по програме "Сведения о системе"
 
B

Barmutik

#12
А куда уж конкретнее ? Я же указал Вам на готовую функцию, которая позволяет получить информацию о состоянии памяти в системе...

Удачи! Интересная попытка написать диплом таким способом...
 
T

TERRAPOD

#13
Пожалуста, используются API функции.
Для 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;
}
:(
 
Статус
Закрыто для дальнейших ответов.