Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

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


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...
Как дальше - разберёшься ?




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.026 c
1-42808           Ig                    2002-01-31 23:37  2002.02.14  
Нужны алгоритмы обработки изображений!!!


14-42855          Snake                 2001-12-24 18:03  2002.02.14  
Администрирование Win2000


1-42742           asdf                  2002-01-30 13:24  2002.02.14  
Создание объектов


1-42774           Vitek                 2002-01-31 14:15  2002.02.14  
Текстовые компоненты 2


3-42654           Do№                   2002-01-16 22:02  2002.02.14  
Как игнорировать ошибку при открытии БД