![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение списка выполняемых задач винды [D6, D7, WinXP]
Flext@r © (2004-12-25 21:07:00)Как получить список используемых задач винды? Подскажите пожайлуста!
DeadMeat (2005-01-01 14:20:00) [1]Ламер - он ничего не знает, но делает вид, что знает
Чайник - тоже мало что знает, но пытается учиться и не скрывает своего незнанья
---
...Death Is Only The Begining...
kaZaNoVa (2005-01-01 12:54:00) [2]Piter © (31.12.04 13:15) [12]
> Ты учти, что есть Чайники, а есть Ламеры. И они
> принципиально друг от друга отличаются.
ха:))
- по твоему- чем? =))
Gero (2004-12-31 15:13:00) [3]
> Piter © (31.12.04 13:15)
Миша, спокойно, Новый Год на дворе! )
А строчку кода все-таки добавил бы в пример…
Piter (2004-12-31 13:15:00) [4]Flext@r © (31.12.04 10:02) [11]
Я же учусь только
и что?! Это оправдывает то, что ты даже не пожелал взглянуть на текстовое описание перед примером?!
Гораздо проще задать очередной тупой вопрос, чем просто прочитать пару строчек выше, да?
Ты учти, что есть Чайники, а есть Ламеры. И они принципиально друг от друга отличаются.
Flext@r (2004-12-31 10:02:00) [5]Я же учусь только, а не спец как вы!!! Уж не судите строго
Gero (2004-12-31 02:05:00) [6]
> Piter © (31.12.04 01:31)
Да никто ничего не читал. Зачем, если код есть?
Так что перед кодом нужно писать:
uses
TlHelp32;
Piter (2004-12-31 01:31:00) [7]Flext@r © (30.12.04 22:51) [6]
Не понимает: "pe: TProcessEntry32"
кода же люди научаться читать?
Piter © (25.12.04 21:12) [1]
Заголовок CreateToolhelp32Snapshot и остальные типы описаны в модуле TlHelp32
Flext@r (2004-12-30 23:12:00) [8]Спасибо!!!
GuAV (2004-12-30 22:58:00) [9]Flext@r © (30.12.04 22:51) [6]
uses TlHelp32;
Flext@r (2004-12-30 22:51:00) [10]А ведь не работает???!!!
Не понимает: "pe: TProcessEntry32" Ведь на сколько я понял TProcessEntry32 - это какой-то класс но не тип переменной!! Delphi выдаёт ошибку!!!
Хакер (2004-12-25 23:49:00) [11]Piter © (25.12.04 23:17) [3]
эх .. выкладывай-так полностью :))))
Erazzer (2004-12-25 23:39:00) [12]Лень фраера сгубила...
Piter (2004-12-25 23:17:00) [13]Трудно что ли код скомпилировать представленный...
Хакер (2004-12-25 21:29:00) [14]Piter © (25.12.04 21:12) [1]
ссылку на пример то что не выложил ?
Piter (2004-12-25 21:12:00) [15]Если я правильно понял:
-------------------------------------------------
Вопрос: как получить список процессов в системе
Ответ: будем пользоваться функцией CreateToolhelp32Snapshot, она реализована как в NT системах (начиная с windows 2000), так и в 9x. В NT она использует пресловутую NtQuerySystemInformation, которая недокументированна.
Заголовок CreateToolhelp32Snapshot и остальные типы описаны в модуле TlHelp32.
CreateToolhelp32Snapshot может делать снимок процессов и куч, модулей, потоков, используемых процессом. Она заносит требуемые данные в некоторую структуру (снимок) и возвращает ее описатель. После использования снимка нужно закрыть описатель.
Работать со снимком можно с помощью функций Process32First, Process32Next, Thread32First , Thread32Next и так далее (описаны в Win32 SDK в разделе 'Tool Help Functions'). Эти функции заносят информацию о конкретном процессе, потоке и т.д. из снимка в структуры типа TProcessEntry32, TThreadEntry32.
Итак, будем получать список процессов и заносить их названия в ListBox1, который лежит у нас на форме:
procedure TForm1.Button1Click(Sender: TObject);
var
HSnapShot: THandle;
pe: TProcessEntry32;
begin
listbox1.Clear; //очишаем наш ListBox1
HSnapShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //нам нужен снимок процессов
pe.dwSize := sizeof(ProcessEntry32); //перед использованием TProcessEntry32 нужно заполнить поле dwSize
if Process32First(HSnapShot, pe) then // если первая запись о процессах получена - продолжаем
repeat
listbox1.Items.Add(pe.szExeFile); // добавляем в ListBox
until ( not Process32Next(HSnapShot,pe) ); // получаем запись о следующем процессе, если не получаем - выходим из цикла
closehandle(HSnapShot); // закрываем описатель снимка
end;
Файл проекта с данным примером можно загрузить ЗДЕСЬ
Отвечал: Piter