Приветсвую всех! Сегодня, я хотел бы вам рассказать как написать программу для мониторинга за памятью.
Начнем..
1. Начинаем. Сегодня, я покажу, как написать программу, которая будет показывать состояние памяти компьютера. Для начала попробуем определить что она будет делать.. Самое главное что нам нужно - это состояние физической памяти и ее загруженность в %.
А дальше уже можно добавить состояние виртуальной, страничной памяти.
Создаем новый проект в Дельфи. Удобнее всего состояние памяти будет отображаться в компонентах Label, Edit. Я возьму Label. --> Кидаем на форму 7 компонентов Label, в них будет отображаться значения. И еще 7 - в них будут отображаться пояснения:
Далее кидаем на форму Таймер (Вкладка System), - это будет наш главный элемент. Ставим интервал по своему усмотрению, у меня - 400. Интервал будет отвечать за частоту обновления полей. Для красоты можно еще кинуть на форму ProgressBar ( из вкладки Win32)(чтобы pogressBar выглядела лучше, измени свойство Smooth равным True.) . Все это сделали? - Начинаем кодить:
Весь код мы запишем в процедуру запуска таймера:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var m: TMemoryStatus; temp: integer;
begin m.dwLength:=sizeof(m);
GlobalMemoryStatus(m);
with m do begin //Загруженность памяти
label1.caption:=IntToStr (dwMemoryLoad)+' %'; // Всего физической
label2.caption:=IntToStr (dwTotalPhys)+' байт'; // Свободно физической
label3.caption:=IntToStr (dwAvailPhys)+' байт'; // Всего страничной
label4.caption:=IntToStr (dwTotalPageFile)+' байт'; // Свободно страничной
label5.caption:=IntToStr (dwAvailPageFile)+' байт'; // Всего выиртуальной
label6.caption:=IntToStr (dwTotalVirtual)+' байт'; //Свободно виртуальной
label7.caption:=IntToStr (dwAvailVirtual)+' байт'; //Загруженность на ProgressBar1
progressbar1.Max:= dwTotalPhys;
progressbar1.Position:=dwTotalPhys-dwAvailPhys;
end;
end;
Вот в принципе и все. Однако, если ты используешь Edit, то вместо labelX.caption пиши EditX.text , где х-номер компонента.