Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Помогите плиз достать иконку!!!!!!   Найти похожие ветки 

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
1-55161
ЗЛ
2002-06-04 14:50
2002.06.17
Есть StringGrid и у меня в зависимости от того какая команда в яч


4-55365
aaaaaaaaaaaaaaaa
2002-04-16 13:41
2002.06.17
Отправить email прямо через SMTP сервер


1-55168
kronprince
2002-06-04 17:31
2002.06.17
Снова про прервание Application :)


1-55092
Andrew22
2002-05-29 15:23
2002.06.17
Реестр


1-55078
Starkom
2002-06-04 08:29
2002.06.17
Не могу разобраться с выгрузкой Dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский