Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Как прикрепить Иконку к программе?? (https://forum.antichat.xyz/showthread.php?t=126211)

andreipup 20.06.2009 21:15

Как прикрепить Иконку к программе??
 
Вопрос конечно тупой, но сильно не пинайте я новичок в этом.
Порога на Ams чем можно прикрепить иконку
к ней?

BrainDeaD 20.06.2009 21:19

м.б. resource hacker.

POS_troi 20.06.2009 21:37

Фасм.

Код:

section '.rsrc' resource data readable
 
  directory RT_ICON, icons,\
            RT_GROUP_ICON, group_icons
 
  resource icons,\
          1, LANG_NEUTRAL, icon_data
 
  resource group_icons,\
          1, LANG_NEUTRAL, main_icon
 
  ; Описание одиночной иконки
  icon main_icon, icon_data, 'имя иконки.ico'

Если уже скомпилированная то тогда редактором ресурсов - тем что сказал BrainDeaD или любым другим.

andreipup 20.06.2009 21:59

Есть исходник пороги просто даже не знаю в какое место кода вставить этот код.Редактором неполучилось(((.
MASM32 Editor в нем как то можно сделать?

swt1 20.06.2009 22:12

click
так же в masm32 есть,examples

andreipup 20.06.2009 22:59

Блин запутался дальше некуда(Есть порога которой приклеить иконку?

bons 20.06.2009 23:19

создаешь файл с содержимым
Код:

1 ICON icon.ico
и расширением *.rc
icon.ico - твоя иконка
Компилируеь его в файл ресурсов
Код:

rc resfile.rc
получится файл *.res
линкуешь вместе с основной программой
Код:

link mainprog.obj resfile.res

Fliplab 23.06.2009 11:44

Код:

unit UExtractIcon;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ShellApi, ExtCtrls, ComCtrls, Buttons;

type
  TFormExtractIcon = class(TForm)
    BitBtnOpen: TBitBtn;
    BitBtnSave: TBitBtn;
    ButtonReLoad: TButton;
    UpDownIconIndex: TUpDown;
    OpenDialogIcon: TOpenDialog;
    SaveDialogIcon: TSaveDialog;
    ImageIcon: TImage;
    EditIconIndex: TEdit;
    LabelIconIndex: TLabel;
    LabelIcon: TLabel;
    LabelFileName: TLabel;
    BevelIcon: TBevel;
    procedure OpenIconClick(Sender: TObject);
    procedure SaveIconClick(Sender: TObject);
    procedure LoadIconFromFile;
    procedure ButtonReLoadClick(Sender: TObject);
    procedure EditIconIndexKeyPress(Sender: TObject; var Key: Char);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormExtractIcon: TFormExtractIcon;

implementation

{$R *.DFM}

{ExtractIconResInfo}

var
  Bitmap  : TBitmap;
  IconSave : TIcon;
  FullDir  : String;
  IconIndex: Word;

procedure TFormExtractIcon.LoadIconFromFile;
var
  Pch: array[0..256] of Char;
  IconExtr: HIcon;
begin
  IconIndex := StrToInt(EditIconIndex.Text);
  FullDir := OpenDialogIcon.FileName;
  StrPCopy(Pch,FullDir);
  IconExtr := ExtractAssociatedIcon(hInstance,Pch,IconINdex);
  IconSave.Handle := IconExtr;
  Bitmap.Width := IconSave.Width;
  Bitmap.Height := IconSave.Height;
  Bitmap.Canvas.Draw(0, 0, IconSave);
  ImageIcon.Picture.Icon := IconSave;
  BitBtnSave.Enabled := True;
  ButtonReLoad.Enabled := True;
  LabelFileName.Caption := 'Файл: '+ExtractFileName(FullDir);
  SaveDialogIcon.InitialDir := ExtractFilePath(FullDir);
  SaveDialogIcon.FileName := '';
end;

procedure TFormExtractIcon.OpenIconClick(Sender: TObject);
begin
  if OpenDialogIcon.Execute then
    LoadIconFromFile;
end;

procedure TFormExtractIcon.SaveIconClick(Sender: TObject);
const
  SaveBoolean:Boolean = False;
begin
{SaveDialogIcon.FileName := ChangeFileExt(ExtractFileName(FullDir),'');}
  if SaveDialogIcon.Execute then begin
    case SaveDialogIcon.FilterIndex of
      1: IconSave.SaveToFile(ChangeFileExt(SaveDialogIcon.FileName,'.ico'));
      2: Bitmap.SaveToFile(ChangeFileExt(SaveDialogIcon.FileName,'.bmp'));
    end;
    SaveDialogIcon.InitialDir := ExtractFilePath(SaveDialogIcon.FileName);
  end;
end;

procedure TFormExtractIcon.ButtonReLoadClick(Sender: TObject);
begin
  LoadIconFromFile;
end;

procedure TFormExtractIcon.EditIconIndexKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (Key in ['0'..'9',#8]) then
    key := #0;
end;

procedure TFormExtractIcon.FormActivate(Sender: TObject);
begin
//  IconSave.Free;
  IconSave := TIcon.Create;
//  Bitmap.Free;
  Bitmap := TBitmap.Create;
end;

end.

Так тащи иконки, дальше пихай в exe

winlogon.exe 23.06.2009 13:05

Включаешь Resource Hacker
открываешь нужный *.exe файл
находишь в проге папку Icon Group, открываешь её
В раскрывшемся списке появится список папок, иконка проги должна бытьв первой из этих папок.
После тогго как нашёл иконку, нажимаешь на этот файлик с иконкой правой кнопкой мыши и выбераешь "Заменить ресурс", в появившемся окошке нажимаешь "открыть файл с значком..".
После этого, выбераешь иконку нужную.
Нажимаешь заменить.
Далее нажимаешь Файл -> Сохранить.
The end.
^Для замены иконки проги >_< ^

BrainDeaD 23.06.2009 13:12

Цитата:

Сообщение от andreipup
Блин запутался дальше некуда(Есть порога которой приклеить иконку?

я ж говорю reshacker.

есть ещё уйма прог, которые автоматически меняют иконку, но работают они или нет, сказать не могу, пробуй сам.

смотри здесь


Время: 07:56