![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
icons [D5, D6, Win2k]
alexey1 © (2002-02-13 04:09:00)Привет всем!
Как взять иконки всех запущенных в данный момент приложений. Спасибо.
tretmike (2002-02-15 12:01:00) [1]Могу подсказать, как я беру иконку по хендлу окна:
Icon:= 0;
// Сперва попробуем получить иконку окна
if (Icon = 0) then
Icon:= SendMessage(FOwner.WindowHandler.Wnd, WM_GETICON, ICON_SMALL, 0);
// Если не получилось получить маленькую иконку, то возьмем большую
if (Icon = 0) then
Icon:= SendMessage(FOwner.WindowHandler.Wnd, WM_GETICON, ICON_BIG, 0);
// Если не получилось у окна, то возьмем у класса окна
if (Icon = 0) then
Icon:= GetClassLong(FOwner.WindowHandler.Wnd, GCL_HICONSM);
// if (Icon = 0) then
// Trace("Icon. GetClassLong. GCL_HICONSM: HWND: " + IntToStr(FOwner.Wnd) + "; Error = (" + IntToStr(GetLastError) + ") " + SysErrorMessage(GetLastError));
if (Icon = 0) then
Icon:= GetClassLong(FOwner.WindowHandler.Wnd, GCL_HICON);
// Если стиль у окна - Dialog, то у него нет иконки
// В этом случае возьмем стандатрную
if (Icon = 0) then
Icon:= LoadIcon(0, IDI_WINLOGO);
2. По поводу списка приложений. Попробуй пройтись по списку окон верхнего уровня.
С уважением, Михаил.