Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Почему выдается не правильный размер файла:(   Найти похожие ветки 

 
No_Dead ©   (2008-04-26 19:41) [0]

Не могу сообразить.
Вот код

Wnd:hwnd;
buff: ARRAY [0&#133127] OF Char;
pmc: PPROCESS_MEMORY_COUNTERS;
cb: Integer;
begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 DO begin
if (Wnd <> Application.Handle) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then
begin
GetWindowText(Wnd, buff, sizeof(buff));
GetWindowThreadProcessId(Wnd);
ListBox1.Items.Add(StrPas(buff)+"   "+inttostr(GetWindowThreadProcessId(Wnd)));
cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
GetMem(pmc, cb);
pmc^.cb := cb;
if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
    ListBox1.Items.Add(floattostr((pmc^.WorkingSetSize)/1024) + " Bytes")
    else ListBox1.Items.Add("+++");
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
ListBox1.ItemIndex := 0;
end;


ЗЫ. задача такая: как в диспечере задач отобразить процесс и объем его в памяти.


 
Сергей М,   (2008-04-26 20:22) [1]


> buff: ARRAY [0&#133127;] OF Char;


Это что за абракадабра ?


 
No_Dead ©   (2008-04-26 20:36) [2]

> [1] Сергей М,   (26.04.08 20:22)
>
> > buff: ARRAY [0??] OF Char;
>
>
> Это что за абракадабра ?

хмююю 0&#133127 не скопировалось%>
buff: ARRAY [0&#133127] OF Char;


 
No_Dead ©   (2008-04-26 20:37) [3]

> [2] No_Dead ©   (26.04.08 20:36)
> > [1] Сергей М,   (26.04.08 20:22)
> >
> > > buff: ARRAY [0??] OF Char;
> >
> >
> > Это что за абракадабра ?
>
> хмююю 0?? не скопировалось%>
> buff: ARRAY [0??] OF Char;

ппц%)
0 &#133 127


 
Игорь ©   (2008-04-26 20:41) [4]

if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then

GetCurrentProcess только для своего процесса получаешь память


 
No_Dead ©   (2008-04-26 20:47) [5]

> [4] Игорь ©   (26.04.08 20:41)

вместо GetCurrentProcess нужно id процесса передавать же?
так я понимаю?


 
Игорь ©   (2008-04-26 20:47) [6]

var
 PrHandle: THandle;
---
PrHandle:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, GetWindowThreadProcessId(Wnd));
if GetProcessMemoryInfo(PrHandle, pmc, cb) then


 
No_Dead ©   (2008-04-26 20:49) [7]

> [6] Игорь ©   (26.04.08 20:47)

выдает +++ вместо размера, если вставить твой код


 
Игорь ©   (2008-04-26 21:09) [8]


> No_Dead ©   (26.04.08 20:49) [7]


Да сморозил я хрень какую то, вот рабочий код

var
Wnd:hwnd;
buff: ARRAY [0..MAX_PATH] OF Char;
pmc: PPROCESS_MEMORY_COUNTERS;
cb: Integer;
PrHandle: THandle;
prId: THandle;
begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 DO begin
if (Wnd <> Application.Handle) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then
begin
GetWindowText(Wnd, buff, sizeof(buff));
GetWindowThreadProcessId(Wnd, prId);
PrHandle:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, prId);
ListBox1.Items.Add(StrPas(buff)+"   "+inttostr(prId));
cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
GetMem(pmc, cb);
pmc^.cb := cb;
if GetProcessMemoryInfo(PrHandle, pmc, cb) then
   ListBox1.Items.Add(floattostr((pmc^.WorkingSetSize)/1024) + " Bytes")
   else ListBox1.Items.Add("+++");
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
ListBox1.ItemIndex := 0;



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1207729431
TStas
2008-04-09 12:23
2008.05.25
Неработающие порноссылки в "компонетах"


3-1198241730
AlexeyMir
2007-12-21 15:55
2008.05.25
Как заставить DBGridEh чтобы вываливался dropdownbox


3-1198054213
Дядя Вова
2007-12-19 11:50
2008.05.25
Правильно отфильтровать поля


2-1209549182
Magos
2008-04-30 13:53
2008.05.25
Определение нажатой клавиши на клавиатуре


6-1183719077
Сергей И
2007-07-06 14:51
2008.05.25
Как узнать включен ли в сеть определенный компьютер?