![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить иконку окна? [D7, WinXP]
delphi-oracle © (2006-02-15 09:06:00)Как получить иконку чужой окна на WinAPI??? Как не пробовал, не получается...
Marser (2006-02-16 11:03:00) [1]Удалено модератором
Игорь Шевченко (2006-02-16 10:50:00) [2]delphi-oracle © (15.02.06 19:54) [3]
Marser © (15.02.06 20:28) [4]
Рулез надо чтить. Потру нафиг.
Marser (2006-02-15 20:28:00) [3]> delphi-oracle © (15.02.06 19:54)
Використання жодної мови, окрім російської, є небажаним на цьому форумі, тож раджу вам більше так не робити. Дивіться правила спілкування http://www.delphimaster.ru/forums.shtml#rule
> І яке мені щастячко з твого WM_GEtIcon?
В такому випадку дивляться Delphi Help. WM_GETICON - повідомлення Windows.
delphi-oracle (2006-02-15 19:54:00) [4]І яке мені щастячко з твого WM_GEtIcon? Або не знаю, як написати, або глючить? Іконка постійно стає пустою. EMPTY. І. Шевченко дякую. Глянем.
Игорь Шевченко (2006-02-15 11:35:00) [5]
{Выдираем иконку всеми возможными средствами}
// Thanks to Игорь Шевченко
function GetIconFromWindow(hWnd:HWND):HICON;
var
Ico:HICON;
begin
Ico:=0;
SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico := GetClassLong(hwnd, GCL_HICONSM);
if (ico = 0) then SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico := GetClassLong(hwnd, GCL_HICON);
{вот именно эта строка работает за всех, кто бы знал}
if (ico = 0) then SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico:=LoadIcon(0,IDI_APPLICATION);
Result:=Ico;
end;
begin...end (2006-02-15 09:21:00) [6]WM_GETICON