Вниз
Скачать: CL | DM;

Получение иконки приложения   Найти похожие ветки 

← →
tradakad   (2004-12-16 10:01) [0]

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


← →
DVM ©   (2004-12-16 10:22) [1]

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


← →
tradakad   (2004-12-16 14:27) [2]

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


← →
alpet   (2005-01-17 11:45) [3]

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


← →
alpet   (2005-01-17 13:11) [4]

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


← →
alpet   (2005-01-17 13:13) [5]

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


← →
tradakad ©   (2005-01-17 14:18) [6]

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-18 10:59) [7]

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


← →
DVM ©   (2005-01-18 17:50) [8]


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

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


← →
DVM ©   (2005-01-18 17:52) [9]

вот тут я писал как
http://delphimaster.net/view/4-1103179556/


← →
tradakad ©   (2005-01-18 18:00) [10]

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


← →
DVM ©   (2005-01-19 10:03) [11]


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

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


← →
DeadMeat ©   (2005-01-19 21:24) [12]

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

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



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.041 c
6-1103885489
Антон
2004-12-24 13:51
2005.03.06
Подключение по локальной сети


1-1108743397
ПроНыРа
2005-02-18 19:16
2005.03.06
компиляция содержимого RichEdit


3-1107148450
Garry_c
2005-01-31 08:14
2005.03.06
Активизация триггеров в IB


4-1105877516
KILLMAN
2005-01-16 15:11
2005.03.06
отследить открытие/закрыте CD-ROM


4-1106433800
Unleashed
2005-01-23 01:43
2005.03.06
Setupdi функции




   Наверх