Форум: "Система";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизКак получить список процессов из консольного или не имеющего окна Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c