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

Вниз

Новый вопрос на старую тему - список всех задач   Найти похожие ветки 

 
M O'Hare ©   (2001-12-13 11:24) [0]

Хочу вывести список всех задач в NT. Для Win98 код примерно таков:

procedure TForm1.Button1Click(Sender: TObject);
var Wnd : hWnd;
buff: array [0..127] of char;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do begin {Не показываем:}
if (Wnd <> Application.Handle) and
(GetWindow(Wnd, gw_Owner) = 0) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then begin
ListBox2.Items.Add(StrPas(buff));
GetWindowModuleFileName(Wnd, buff, sizeof(buff));
ListBox1.Items.Add(ExtractFileName(StrPas(buff)));
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
end;

Так вот этот код не работает в NT. Вернее работает, но криво: для windows commander"a пишет имя ехешника "project1.exe", ака для многих других запущенных прог.
Во многих статьях есть фразы "эта функция не пашет в NT", но ни слова о том, чем ее можно заменить.


 
Fellomena   (2001-12-17 10:54) [1]

Во-первых: что значит всех задач ? Всех окон ? Всех процессов ? Всех загруженных модулей ? thread-ов, fiber-ов....
Как я поняла из кода - речь идёт о окнах...
(потому как что бы получить список всего загруженного в Win9x необходимо использовать ф-ию Create32ToolHelp32SnapShot,
которая создаёт "слепок"/dump системы, а далее Process32First, Process32Next, Module32First.....; )
Для NT используется NTQuerySystemInformation...
Как дальше - разберёшься ?



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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
14-42829
навичек
2001-12-24 04:22
2002.02.14
ADO Provider потеряся


7-42886
amamed_3071
2001-11-09 13:41
2002.02.14
Как Форму сохранит в DLL


14-42858
3d[Power]
2001-12-26 13:11
2002.02.14
Сколько может стоить программа?


3-42702
ava
2002-01-22 23:17
2002.02.14
Как перенести, а затем востановить, данные из таблицы


3-42701
Yakudza
2002-01-22 21:39
2002.02.14
Подскажите, очень срочно надо !!