Форум: "Начинающим";
Текущий архив: 2013.12.22;
Скачать: [xml.tar.bz2];
ВнизБольшие иконки Найти похожие ветки
← →
ttt (2013-03-03 21:08) [0]Добрый вечер.
Необходимо извлечь из dll или exe иконку по индексу максимального размера либо 48х48.
Пытался рыть в сторону ExtractIconEx и SHGetFileInfo, но первый возвращает максимум 32х32, а второй иконку приложения.
Возможно ли это стандартными методами или придется шурудить в ресурсах?
← →
Rouse_ © (2013-03-03 21:14) [1]
ExtractIconEx
phiconLarge [out, optional]
Type: HICON*
An array of icon handles that receives handles to the large icons extracted from the file. If this parameter is NULL, no large icons are extracted from the file.
← →
ttt (2013-03-03 22:10) [2]Ну да, это и есть массив 32х32 иконок.
← →
Rouse_ © (2013-03-03 22:38) [3]Покажи код.
← →
ttt (2013-03-03 23:22) [4]
var
IconIndex: integer;
icon: TIcon;
h1, h2: array [0..$FF] of HICON;
FI: SHFILEINFO;
ImageList: HIMAGELIST;
begin
try
IconIndex:= StrToInt(edtIconIndex.Text);
except
IconIndex:= -1;
end;
icon:= TIcon.Create;
if IconIndex = -1 then begin
SHGetFileInfo(PChar(IconFile), 0, FI, SizeOf(FI), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_LARGEICON);
ImageList:= GetImageListSH(2);
icon.Handle:= ImageList_GetIcon(ImageList, FI.iIcon, ILD_NORMAL);
ImageList_Destroy(ImageList);
end else begin
ExtractIconEx(PChar(IconFile), IconIndex, h1[0], h2[0], 200);
icon.Handle:= h1[0];
end;
Image1.Canvas.Draw(0, 0, icon);
Так вот. Когда использую SHGetFileInfo то получаю иконку 48х48, но она не работает с индексом.
Далее тестировал содержимое массива. Иконок всего 96 штук в файле. Массив забит только на 96 элементов и все 32х32.
← →
sniknik © (2013-03-04 08:20) [5]> SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_LARGEICON
попробуй оставить только нужное.
← →
sniknik © (2013-03-04 10:32) [6]http://rmklever.com/?p=266
← →
ttt (2013-03-04 13:06) [7]
function PrivateExtractIcons(lpszFile: PChar; nIconIndex,
cxIcon, cyIcon: integer; phicon: PHANDLE; piconid: PDWORD;
nicon, flags: DWORD): DWORD; stdcall; external user32 name "PrivateExtractIconsA";
Вот оно!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.12.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c