VR
Virtual Reality On-line   Delphi
Новости   |     Журнал    |    Хаkер   |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]
[ Download  ]
[  Конкурс  ]
[  Анекдоты ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Delphi.
Пишем прогу мониторинга за памятью
:

Hi! Сегодня мы попытаемся написать программу, которая будет показывать состояние памяти компа. Для начала определим что она будет делать. Ну самое главное что нам нужно, это сотояние физической памяти и загруженность ее в %. А дальше, по своему вкусу, добавим еще состояние виртуальной и страничной памяти.

Начнем. Создай новый проект на Делфи ( File->New->Application). Теперь подумай, как тебе удобней отображать состояние памяти. Для меня лучше в Label, но можно и Edit. Ну это на твое усмотрение. Кидай на форму 7 компонентов Label (в них будет отображаться значение) и еще 7 (это будут пояснения: загруженность, всего физической, использовано физической, всего страничной, использовано страничной, всего виртуальной, использовано виртуальной). Какие не нужны, те отбрось ;) . Теперь кинь таймер (из вкладки System). Это будет наш главный элемент., поэтому поставь интервал по своему усмотрению (у меня он 400). Этот интервал будет отвечать за частоту обновления полей. Ну и для красоты брось ProgressBar ( из вкладки Win32). У тебя должно получиться что-то типа этого:

Logo
Рисунок 1.

Теперь приступим непосредственно к кодингу. Весь код мы будем писать в процедуру запуска таймера. А вот и код:


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 , где х-номер компонента. И последнее, чтобы pogressBar выглядела лучше, измени свойство Smooth равным True. А вот прога в действии:

Logo
Рисунок 1.

Если у тебя возникнут какие-либо вопросы, предложения, пожелания, прошу отправлять их мне по адресу: crazy_script@mail.ru

Copyright: Crazy_Script


Copyright©: Horrific aka Флёнов Михаил
Design by FMk group©