Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 07.04.2015
Сообщений: 13
1

Определить характеристики компьютера

20.04.2015, 20:21. Просмотров 1699. Ответов 6
Метки нет (Все метки)


Помогите пожалуйста с лабой, нужно написать программу на паскале чтоб она выдавала характеристики компьютера
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2015, 20:21
Ответы с готовыми решениями:

Оцените характеристики компьютера из Сша
В общем нахожусь сейчас в сша ,хотел заказать игровой Pc с этого сайта...

Минимальные характеристики компьютера для поддержки делфи
Помогите сформулировать минимальные характеристики компьютера для поддержки делфи, а именно: ОЗУ,...

Хороши ли следующие характеристики для игрового компьютера?
Здравствуйте, в компьютерах разбираюсь не сильно. Выбираю для себя игровой компьютер, подскажите...

Как программно узнать характеристики своего компьютера?
Как программно узнать характеристики своего компьютера? процессор , озу , разрядность , винду ,...

6
Эксперт Pascal/Delphi
2359 / 1278 / 1484
Регистрация: 29.08.2014
Сообщений: 4,602
20.04.2015, 21:42 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses windows,sysutils,crt;
var
  b: array[0..255] of char;
  ms: TMemoryStatus;
 
function CPUSpeed: Double;{http://forum.sources.ru/index.php?showtopic=84535}
 
  const DelayTime = 500;
var TimerHi : DWORD;
     TimerLo : DWORD;
     PriorityClass : Integer;
     Priority : Integer;
begin
  PriorityClass := GetPriorityClass(GetCurrentProcess);
  Priority := GetThreadPriority(GetCurrentThread);
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
  Sleep(10);
   {$ASMMODE intel}
  asm
    DW 310Fh // rdtsc
    MOV TimerLo, EAX
    MOV TimerHi, EDX
  end;
  Sleep(DelayTime);
  asm
    DW 310Fh // rdtsc
    SUB EAX, TimerLo
    SBB EDX, TimerHi
    MOV TimerLo, EAX
    MOV TimerHi, EDX
  end;
  SetThreadPriority(GetCurrentThread, Priority);
  SetPriorityClass(GetCurrentProcess, PriorityClass);
  CPUSpeed := TimerLo / (1000.0 * DelayTime);
end;
 
begin
  clrscr;
  writeln('Тактовая частота:',CPUSpeed:0:2,'МГц');
  GlobalMemoryStatus(MS);
  WriteLn('Оперативная память: ', MS.dwTotalPhys/1024/1024:0:2,'Мб');
  WriteLn('Свободно на жестком диске: ',DiskFree(3)/1024/1024:0:2,'Мб');
  WriteLn('Объем жесткого диска: ',DiskSize(3)/1024/1024:0:2,'Мб');
  WriteLn;
    WriteLn('Текущий каталог: ',getcurrentdir);
  GetSystemDirectory(b,sizeof(b));
  WriteLn('System: ',b);
  WriteLn('Temp: ',gettempdir);
  getWindowsDirectory(b,sizeof(b));
  WriteLn('Windows: ',b);
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30867 / 20189 / 7874
Регистрация: 22.10.2011
Сообщений: 35,049
Записей в блоге: 6
20.04.2015, 23:37 3
TSMBIOS позволяет сделать то же самое как под Win, так и под Linux. Если нельзя использовать сторонние библиотеки, то можно хотя бы посмотреть, как это делается для другой ОС, исходники по ссылке имеются.
1
0 / 0 / 1
Регистрация: 07.04.2015
Сообщений: 13
23.04.2015, 20:48  [ТС] 4
Joy, Большое спасибо вы очень помогли мне, а вы не знаете ещё каких нибудь процедур/функций чтоб больше характеристик выявляла к примеру там что нибудь из этого ну или ещё что нибудь 'Версия BIOS; Семейство/производитель, архитектура процессора, количество ядер,Тип процессора; 'Файловая система. Я вот ничего чет не могу найти чтоб именно можно было на паскале. Я вот только на delphi кусочки процедур нашел а мне нужно именно на free pascal если можно под паскаль переделать
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure GetBIOSInfo;
var
   RegPath: string;
   MyReg: TRegistry;
   MyList: TStrings;
  SysDateBios: string;
  VersionBios: string;
  VideoBios: string;
begin
   MyReg:=TRegistry.Create;
   MyReg.Rootkey:=HKEY_LOCAL_MACHINE;
   RegPath:='\HARDWARE\DESCRIPTION\System';
   MyList:=nil;
try
    MyReg.Openkey(RegPath, false);
    SysDateBios:='Системная дата BIOS:   '+MyReg.ReadString('SystemBiosDate');
    MyList:=ReadMultirowKey(MyReg,'SystemBiosVersion');
    VersionBios:='Версия BIOS:   '+MyList.Text;
    VideoBios:='Видео BIOS дата:   '+MyReg.ReadString('VideoBiosDate');
except ShowMessage('Ошибка доступа к системному реестру! Не могу прочитать данные');
end;
    MyReg.Free;
if Assigned(MyList) then
    MyList.Free;
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
Procedure GetProcessorInfo;
var
  MyReg: TRegistry;
  RegPath: string;
begin
   MyReg:=TRegistry.Create;
   MyReg.Rootkey:=HKEY_LOCAL_MACHINE;
   RegPath:='\HARDWARE\DESCRIPTION\System\CentralProcessor';
   MyReg.Openkey(RegPath, false);
   ShowMessage(‘Производитель:+MyReg.ReadString(‘VendorIdentifier’));
   ShowMessage(‘Семейство:+MyReg.ReadString(‘Identifier’));
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure GetProcessorInfo;
var
  ProcessInfo: TSystemInfo;
  ProcCount: string;
  ArchProc: string;
  TypeProc: string;
begin
  GetSystemInfo(ProcessInfo);
  ProcCount:='Количество процессоров:   '+IntToStr(ProcessInfo.dwNumberOfProcessors);
  ArchProc:='Архитектура процессора:   '+IntToStr(ProcessInfo.wProcessorArchitecture);
  TypeProc:='Тип процессора'+IntToStr(ProcessInfo.dwProcessorType);
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
var
x: string;
begin
X:=’Разрешение =+IntToStr(Screen.Width)+’x’+ IntToStr(Screen.Height);
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure GetVideoInfo;
var
  DC: hdc;
  mycolor: string;
  col: string;
  bitonpixel: string;
  planesinfo: string;
  ext: string;
begin
   DC :=CreateDC('DISPLAY',nil,nil,nil);
   ext:='Разрешение:   '+IntToStr(Screen.Width)+'x'+IntToStr(Screen.Height);
   bitonpixel:='Бит на Пиксел:   '+IntToStr(GetDeviceCaps(DC,BITSPIXEL));
   planesinfo:='Planes:   '+IntToStr(GetDeviceCaps(DC,PLANES));
case GetDeviceCaps(DC,BITSPIXEL) of
 8 :  mycolor := '256 цветов';
 15 : mycolor := 'Hi-Color / 32768 цветов';
 16 : mycolor := 'Hi-Color / 65536 цветов';
 24 : mycolor := 'True-Color / 16 млн цветов';
 32 : mycolor := 'True-Color / 32 бит';
end;
    col:='Цвета:   '+mycolor;
    DeleteDC(DC);
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure GetMemoryInfo;
var
  MyMem: TMemoryStatus;
  LoadMem: string;
  AllMem: string;
  FreeMem: string;
  VirtMem: string;
  FreeVirtMem: string;
begin
   MyMem.dwLength:=SizeOf(MyMem);
   GlobalMemoryStatus(MyMem);
with MyMem do begin
   LoadMem:='Загружено памяти:   '+IntToStr(dwMemoryLoad) + '%';
   AllMem:='Всего памяти:   '+Format('%0.0f Мбайт',[dwTotalPhys div 1024 / 1024]);
   FreeMem:='Осталось памяти:   '+Format('%0.3f Мбайт',[dwAvailPhys div 1024 / 1024]);
   VirtMem:='Виртуальная память:   '+Format('%0.0f Мбайт',[dwTotalPageFile div 1024 / 1024]);
   FreeVirtMem:='Осталось виртуальной памяти:   '+Format('%0.0f Мбайт',[dwAvailPageFile div 1024 / 1024]);
end;
end;

Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure GetDiskInfo;
var
  VolumeName, FileSystemName: array [0..MAX_PATH-1] of Char;
  VolumeSerialNo: DWord;
  MaxComponentLength,FileSystemFlags: Cardinal;
  DiskInfo: TStrings;
begin
  GetVolumeInformation('D:\',VolumeName,MAX_PATH,@VolumeSerialNo,
  MaxComponentLength,FileSystemFlags, FileSystemName,MAX_PATH);
  DiskInfo.Add('Метка тома:   '+VolumeName);
  DiskInfo.Add('Серийный номер:   $'+IntToHex(VolumeSerialNo,8));
  DiskInfo.Add('CompLen:   '+IntToStr(MaxComponentLength));
  DiskInfo.Add('Флаги файловой системы:   $'+IntToHex(FileSystemFlags,4));
  DiskInfo.Add('Файловая система:   '+FileSystemName);
end;
  DiskInfo.Free;
end;
0
Эксперт Pascal/Delphi
2359 / 1278 / 1484
Регистрация: 29.08.2014
Сообщений: 4,602
23.04.2015, 20:53 5
Вам же дали ссылку на модуль tsmbios.
0
0 / 0 / 1
Регистрация: 07.04.2015
Сообщений: 13
24.04.2015, 20:46  [ТС] 6
Да я видел но проблема в том что препод не разрешает использовать сторонние библиотеки говорит подключать дополнительные библиотеки можно только стандартные вот и нужно все в коде описать без подключения сторонних библиотек
0
Эксперт Pascal/Delphi
2359 / 1278 / 1484
Регистрация: 29.08.2014
Сообщений: 4,602
25.04.2015, 02:32 7
Так ты с нее процедуры скатай в свой код да и все.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2015, 02:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как программно узнать характеристики своего компьютера?
Как программно узнать характеристики своего компьютера? процессор , озу , разрядность , винду ,...

Какие характеристики компьютера следует использовать для работы в 1С?
Всем доброго времени суток и хорошего настроения. У нас на работе в отделе бухгалтерии нужно...

Какую видеокарту купить под характеристики компьютера (скриншот внутри)
Какую видеокарту купить под характеристики компьютера? Главное чтобы не дорого

Какие характеристики компьютера важнее всего для записи музыки?
всем добра.нужна помощь специалистов!!!собираюсь приобрести ноутбук,основной задачей которого будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.