Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение иконки приложения [D7, WinXP]


tradakad ©   (2004-12-16 10:01:00) 

Здравствуйте! как получить иконку приложения зная его хендл и текст?


DeadMeat   (2005-01-19 21:24:00) [1]

Opera хитрая фтука. Как и эксплорер... Но функция от DVM работает на всех... Проверено не раз. Смотри баг у себя..

---
...Death Is Only The Begining...


DVM   (2005-01-19 10:03:00) [2]


> у опреры например иконка не вытягивается

С оперой все нормально. Со всеми ее версиями. Что-то ты вероятно не так делал.


tradakad   (2005-01-18 18:00:00) [3]

Я пробовал - у опреры например иконка не вытягивается. и еще что тоже не велось на эту функцию...


DVM   (2005-01-18 17:52:00) [4]

вот тут я писал как
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1103179556&n=5


DVM   (2005-01-18 17:50:00) [5]


> Есть проги у которых нельзя узнать иконку и этим способом.

если у окна пограммы есть иконка и это стандартный заголовок иконку можно вытащить всегда.


alpet   (2005-01-18 10:59:00) [6]

Есть проги у которых нельзя узнать иконку и этим способом.
В этом случае можно ExtractIconEx, которую надо экспортировать из shell32.dll. На вход ей надо имя файла которое проще всего узнать через функции ToolHlp32, через поиск процесса которому пренадлежит исходное окно.


tradakad   (2005-01-17 14:18:00) [7]

2 alpet
да. согласен.
когда то Игорь Шевченко подсказал
function TfMain.HSGetWindowIcon (WindowHandle: HWND): THandle;
begin
if SendMessageTimeOut(WindowHandle, WM_GETICON, ICON_SMALL, 0,
SMTO_NORMAL, 300, Result) = 0 then
Result := 0;
if Result = 0 then
Result := GetClassLong(WindowHandle, GCL_HICONSM);
end;


alpet   (2005-01-17 13:13:00) [8]

Впрочем дает, для маленьких иконок надо использовать GCL_HICONSM


alpet   (2005-01-17 13:11:00) [9]

Лучше все наверное пользовать GetClassLong (hwnd, GCL_HICON). Хотя это не дает различие малых/больших иконок.


alpet   (2005-01-17 11:45:00) [10]

Не все приложения грамотно отрабатывают это сообщения. Если запрос идет к "повисшему" приложению, заодно вешается и программа его отправляющая :-(


tradakad   (2004-12-16 14:27:00) [11]

Ну да Ж) не так просто сказал. щас попробую.


DVM   (2004-12-16 10:22:00) [12]

Наверное имелось ввиду иконку окна?
WM_GETICON


Наверх

Титульная страница Поиск, карта сайта Написать письмо