Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение информации о выполняющихся в системе процессах [D7, WinXP]


User_OKA ©   (2003-11-21 09:29:00) 

Если обновляю список процессов, через кнопку, все нормально,
а если делаю обновление при помощи таймера, через определенный интервал времени происходит следующие:

Пока фокус на сетке - все ОК. Стоит только переместить мышь (ничего не нажимая!) в район меню, список исчезает, остается одна строка с кракозяблами. Когда мышь в других областях формы (заголовок, кнопки, бордюр, etc.) или вообще вне формы, опять же все ОК.

Help!!!

// Получение информации о выполняющихся в системе процессах

var
SH : Cardinal;
Num, I : Integer;
PPE : TProcessEntry32;
Full_Path, Exe_name: array [0..40]of string;
ProcessID : array [0..40] of integer;
begin
Num := 0;
SH := CreateToolHelp32SnapShot(Th32cs_SnapAll, 0);
Process32First(SH, PPE);
Full_Path[Num] := PPE.szExeFile;
Exe_Name[Num] := ExtractFileName(Full_Path[Num]);
ProcessID[Num] := PPE.Th32ProcessID;
Num := Num + 1;

while Process32Next(SH, PPE) do
begin
Full_Path[Num] := PPE.szExeFile;
Exe_Name[Num] := ExtractFileName(Full_Path[Num]);
ProcessID[Num] := PPE.Th32ProcessID;
Num := Num + 1;
end;
Listbox1.Clear;
for I := 0 to Num-1 do Listbox1.Items.Add(Full_path[i]);
CloseHandle(SH)
end;


User_OKA   (2003-11-21 11:35:00) [1]

За ссылку спасибо, но я уже разобрался. Забыл определить размер типа:
PPE.dwSize:=SizeOf(TProcessEntry32)


DVM   (2003-11-21 10:31:00) [2]

http://delphibase.endimus.ru/?action=viewfunc&topic=sysparams&id=10003


Наверх

Титульная страница Поиск, карта сайта Написать письмо