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

Вниз

Как получить список процессов из консольного или не имеющего окна   Найти похожие ветки 

 
anton_cor ©   (2003-04-22 15:31) [0]

Доброе время суток.
Мастера, помогите! Собственно сабж.
Пример взят из справки по WinAPI c http://www.soobcha.ru/rushelp
Беда в том, что если код выполняется в консольном приложение или не имеющем окна
(с соответствующими поправками на вывод результата), то не могу получить списк.
С чем это может быть связано?

Привожу сам код:

var
handler:thandle;
data:TProcessEntry32;

function return_name:string; // Вспомоготельная функция получения имени
var
i:byte;
names:string;
begin
names:="";
i:=0;
while data.szExeFile[i] <> "" do
begin
names:=names+data.szExeFile[i];
inc(i);
end;
return_name:=names;
end;

begin //Основная функция перечисления процессов
handler:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
if Process32First(handler,data) then
begin
memo1.Items.add(return_name);
while Process32Next(handler,data) do
memo1.Items.add(return_name);
end
else
showmessage("Ошибка получения информации :)");

CloseHandle(handler); //Хендл закрывать обязательно!!
end;


 
default ©   (2003-04-22 15:35) [1]

даа
Memo1 тут прям к месту...


 
jack128 ©   (2003-04-22 15:45) [2]

data.dwSize := sizeof(data);
Вот это ты забыл.
aeyrция return_name - лишняя


 
jack128 ©   (2003-04-22 15:46) [3]

aeyrция = функция :-)


 
anton_cor ©   (2003-04-22 16:46) [4]

>jack128
Спасибо, помогло! Если еще обяснишь почему это работало раньше, без задания размера структуры, то я буду благодарен еще больше!

На счет ф-ции согласен. Зачем ее в хелп тогда запихнули? :)


 
jack128 ©   (2003-04-22 22:56) [5]

Не знаю как оно могло работать...
Я не знаю точно как инициализируются локал. переменные, но если там мусор, то тебе попал очень удачный мусор ..



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

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

Наверх




Память: 0.48 MB
Время: 0.043 c
9-7284
K@zzel
2003-01-21 16:54
2003.07.03
Просто вопрос


1-7470
Оля
2003-06-20 18:37
2003.07.03
Ошибка


4-7769
Clamat
2003-05-01 09:25
2003.07.03
Правильное завершение системы


9-7278
KoHe4Ho }|{e 6ot
2003-01-18 23:17
2003.07.03
Как перерисовывать image или canvas без мигания ?


7-7747
danja
2003-04-21 10:47
2003.07.03
Урезать ClipRect канвы принтера