|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Узнать размер операционной памяти
Помогите!!! Нужно сделать программу, которая определяет размер ОЗУ. Программа на Delphi Код написал по примеру, но не могу понять, что не так. Выбивает ошибку.
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private function GetMemoryTotalPhys: dword; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin memoryMB:=GetMemoryTotalPhys; memoryMB:=((memoryMB div 1024)div 1024); showmessage('RAM: '+ inttostr(memoryMB)+ ' MB'); end; function TForm1.GetMemoryTotalPhys: dword; var recMemoryStatus: TMemoryStatus; begin // sets record size recMemoryStatus.dwLength := SizeOf(TMemoryStatus); // retrieves global memory status (WinAPI) GlobalMemoryStatus(recMemoryStatus); // sets result with total amount of memory result := recMemoryStatus.dwTotalPhys; end; end. |
#2
|
||||
|
||||
Где у тебя объявление переменной "memoryMB"?
P.S.: хм... В сообщении говорится, что у меня установлено 4ГБ памяти, а по факту 16ГБ. Что-то не то... Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. Последний раз редактировалось Kailon, 27.06.2016 в 00:42. |
#3
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
||||
|
||||
Код:
unit UnitUtl; interface uses Windows, Messages; type TMemoryStatusEx = record dwLength: DWORD; dwMemoryLoad: DWORD; ullTotalPhys: Int64; ullAvailPhys: Int64; ullTotalPageFile: Int64; ullAvailPageFile: Int64; ullTotalVirtual: Int64; ullAvailVirtual: Int64; ullAvailExtendedVirtual: Int64; end; function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx): Boolean; stdcall; external kernel32; function GlobalMemoryStatusExTotalPhys: Int64; function GlobalMemoryStatusExAvailPhys: Int64; implementation function GlobalMemoryStatusExTotalPhys: Int64; var MemoryStatus: TMemoryStatusEx; begin Result:=-1; MemoryStatus.dwLength:=SizeOf(TMemoryStatusEx); if GlobalMemoryStatusEx(MemoryStatus) then Result:=MemoryStatus.ullTotalPhys; end; function GlobalMemoryStatusExAvailPhys: Int64; var MemoryStatus: TMemoryStatusEx; begin Result:=-1; MemoryStatus.dwLength:=SizeOf(TMemoryStatusEx); if GlobalMemoryStatusEx(MemoryStatus) then Result:=MemoryStatus.ullAvailPhys; end; end. Пишу программы за еду. __________________ |