Текущий архив: 2002.06.17;
Скачать: CL | DM;
ВнизПомогите плиз достать иконку!!!!!! Найти похожие ветки
← →
ted (2002-04-11 10:51) [0]Может быть кто-нибудь знает как достать иконку из .exe файла????
← →
Song (2002-04-11 11:09) [1]ExtractAssociatedIcon()
← →
gek (2002-04-11 11:20) [2]Есть в Delphi пример
Resxplor
← →
DenKop (2002-04-11 22:27) [3]uses ShellApi
var
Icon:TIcon;
...
begin
Icon.Handle:=ExtractIcon(hInstance,FileName,0);
...
end;
В Icon"е будет первая попавшаяся иконка файла.
Подробнее смотри в SDK.
← →
Neolord (2002-04-14 04:22) [4]restorator 2.50 или irfanView 0.5 и выше
← →
copyr25 (2002-04-15 23:19) [5]unit Unit1;
// How to extact an icon from exe
// and paint it?
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
ShellAPI, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex : word;
h : hIcon;
begin
IconIndex := 0;
h :=
ExtractAssociatedIcon(hInstance,
"C:\WINDOWS\NOTEPAD.EXE",
IconINdex);
DrawIcon(Form1.Canvas.Handle,
10,
10,
h);
end;
end.
← →
Толик (2002-04-16 10:59) [6]Народ, а кто-нибудь знает, как из иконки 32x32 сделать 16x16??? Например ф-я ExtractIconEx умеет возвращать иконки 16x16.
Если рисовать через DrawIconEx это получается как-то кривовато.
← →
Song (2002-04-16 11:06) [7]2Толик © (16.04.02 10:59)
ExtractIconEx() может возвращать как и большие так и маленькие.
← →
Толик (2002-04-16 11:15) [8]to Song ©:
Ну так я о том и говорю, что ExtractIconEx() умеет это делать, а ExtractAssociatedIcon() - нет. У меня есть список файлов, для каждого из них я рисую свою иконку, взятую через ExtractAssociatedIcon(). А рисую я их в выпадающем списке, поэтому 32x32 туда не влезает. Вот я и хочу сделать 16x16. Через DrawIconEx это конечно получается, но рисуются они кривовато (по крайней мере не так, как взятые через ExtractIconEx). Вот я и хочу узнать, как из 32x32 сделать 16x16, чтобы они рисовались красиво???
← →
Song (2002-04-16 11:22) [9]2Толик © (16.04.02 11:15)
А чего Вы взялись за этот ExtractAssociatedIcon()
Что Вам мешает дёргать их через ExtractIconEx()? Там также.
А если рисовать с масштабированием, действительно получается кривовато, артефакт сжатия всегда присутствует, особенно когда маленький размер сжимаемого изображения.
← →
Толик (2002-04-16 11:35) [10]to Song ©:
>>А чего Вы взялись за этот ExtractAssociatedIcon()
Приходится... Удобно для зарегистрированных расширений, например .dll .hlp и проч. Можно крнечно по реестру полазать и узнать какая иконка берётся из Explorer.exe для dll"ек и взять её оттуда, но мне кажется что это криво. Через ExtractAssociatedIcon надёжнее...
← →
Song (2002-04-16 13:12) [11]Толик © (16.04.02 11:35)
ExtractAssociatedIcon() как и ExtractIconEx()
выдерают ассоциированную икону именно с данным файлом, а не с типом этого файла т.е. ту икону, которая в нём заложена, а не та, которая предназначена в реестре для идентификации его по изображению.
А если Вы хотите иконку, которая соспоставлена для типа данного файла, тут одназначно нужен реестр или SHFile*, но данная функция работает с буфером иконок, который может и не всегда содержать нужной иконки.
← →
Толик (2002-04-17 12:36) [12]to Song ©:
>>"ExtractAssociatedIcon() ...выдерают ассоциированную икону именно с данным файлом, а не с типом этого файла т.е. ту икону, которая в нём заложена, а не та, которая предназначена в реестре для идентификации его по изображению..." - ничего подобного!!! Для любого файла, с расширением, например, .dll ф-я ExtractAssociatedIcon() вернёт одну и ту же иконку! Собственно, это даже следует из её названия :) Да и проблема-то не в том, как ДОСТАТЬ иконку, а как её СДЕЛАТЬ 16x16.
← →
Song (2002-04-17 18:14) [13]2Толик © (17.04.02 12:36)
Ok, попробуйте выдрать икону для любого ico или bmp файла. Ну как, сама икона файла или икона типа? :)
Страницы: 1 вся ветка
Текущий архив: 2002.06.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c