![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить иконку запущенного приложения
Осирис © (2002-09-30 16:17:00)Добрый день.
С помощью функции EnumWindows получил список окон. Выбрал из них только видимые:
WL:= GetWindowLong(handle, GWL_STYLE); //Достаем стиль окна
if (wl and $10000000)<>0 then begin
Теперь пытаюсь получить иконку этого файла:
function GetIcon(wnd:hwnd):TIcon;
begin
result:=TIcon.Create; //Создаем иконку
result.Handle:=GetClassLong(wnd,GCL_HICON);
end;
icon:=GetIcon(handle);
Столкнулся с тем, что не у всех запущенных приложений получается получить иконку. В чем дело ? Дело в том, что в TaskBar"e это приложение отображается корректно с соответсвующей иконкой.
Smithson (2002-09-30 17:57:00) [1]Слушай, если в файле НЕТ ресурса-иконки, то вытаскивать нечего!!!
Если taskbar ее все-таки показывает, то это значит, что она назначена программе внешним образом (pif-файл, например).
Игорь Шевченко (2002-09-30 17:31:00) [2]Осирис © (30.09.02 17:28)
Я в программе определил примерный алгоритм, определил примерный набор функций. Трудно дальше идею развить ?
Осирис (2002-09-30 17:28:00) [3]>> Есть многое на свете, друг Горацио...
Это означает, "кто ж его знает" ????
Хм... Мастера "умывают руки" ???
Нужен алгоритм, который по handle запущенного приложения 100% вытащит его иконку. Это так сложно или решение лежит в области недокументированных возможностей Windows ?
Игорь Шевченко (2002-09-30 17:11:00) [4]Осирис © (30.09.02 17:09)
Есть многое на свете, друг Горацио...
Осирис (2002-09-30 17:09:00) [5]Исходный код еще не смотрел, но exe-шник запустил. Все таки не все иконки он она показывает: есть такая прога My Notes Center (www.mynotescenter.com - это их сайт (ксати для русских прога бесплатна)) - вот ее иконку выцепить не получается. Сейчас не могу проверить, но есть подозрение, что и Frigate не покажет свою икону. Если попробовать открыть exe-шники этих програм каким-либо редактором программ, то ресурсов в них найти не получается. Однако виндовый таскбар все таки отбражает иконки этих прог, каким образом ?
Игорь Шевченко (2002-09-30 16:23:00) [6]В кладовке в разделе "Готовые программы" лежит программа EnumFunctions, там есть отображение иконок всех видимых окон.