Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: BigBear en 11 Abril 2014, 18:36 pm



Título: [Delphi] DH Icon Changer 0.5
Publicado por: BigBear en 11 Abril 2014, 18:36 pm
Version final de este programa para cambiarle el icono a cualquier programa (eso creo).

Una imagen :

(http://doddyhackman.webcindario.com/images/dhiconfinal.jpg)

El codigo.

Código
  1. // DH Icon Changer 0.5
  2. // (C) Doddy Hackman 2014
  3. // Based on IconChanger By Chokstyle
  4. // Thanks to Chokstyle
  5.  
  6. unit icon;
  7.  
  8. interface
  9.  
  10. uses
  11.  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  12.  System.Classes, Vcl.Graphics,
  13.  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, madRes, Vcl.StdCtrls,
  14.  Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.ComCtrls, about;
  15.  
  16. type
  17.  TForm1 = class(TForm)
  18.    Image1: TImage;
  19.    GroupBox1: TGroupBox;
  20.    Edit1: TEdit;
  21.    Button1: TButton;
  22.    OpenDialog1: TOpenDialog;
  23.    StatusBar1: TStatusBar;
  24.    GroupBox2: TGroupBox;
  25.    GroupBox3: TGroupBox;
  26.    Button2: TButton;
  27.    GroupBox4: TGroupBox;
  28.    Button3: TButton;
  29.    Button4: TButton;
  30.    Button5: TButton;
  31.    Edit2: TEdit;
  32.    Image2: TImage;
  33.    OpenDialog2: TOpenDialog;
  34.    procedure Button1Click(Sender: TObject);
  35.    procedure Button4Click(Sender: TObject);
  36.    procedure Button5Click(Sender: TObject);
  37.    procedure FormCreate(Sender: TObject);
  38.    procedure Button2Click(Sender: TObject);
  39.    procedure Button3Click(Sender: TObject);
  40.  private
  41.    { Private declarations }
  42.  public
  43.    { Public declarations }
  44.  end;
  45.  
  46. var
  47.  Form1: TForm1;
  48.  
  49. implementation
  50.  
  51. {$R *.dfm}
  52.  
  53. procedure TForm1.Button1Click(Sender: TObject);
  54. begin
  55.  if OpenDialog1.Execute then
  56.  begin
  57.    Edit1.Text := OpenDialog1.FileName;
  58.  end;
  59. end;
  60.  
  61. procedure TForm1.Button2Click(Sender: TObject);
  62. begin
  63.  
  64.  if OpenDialog2.Execute then
  65.  begin
  66.    Image2.Picture.LoadFromFile(OpenDialog2.FileName);
  67.    Edit2.Text := OpenDialog2.FileName;
  68.  end;
  69.  
  70. end;
  71.  
  72. procedure TForm1.Button3Click(Sender: TObject);
  73. var
  74.  op: string;
  75.  change: dword;
  76.  valor: string;
  77.  
  78. begin
  79.  
  80.  valor := IntToStr(128);
  81.  
  82.  op := InputBox('Backup', 'Backup ?', 'Yes');
  83.  
  84.  if op = 'Yes' then
  85.  begin
  86.    CopyFile(PChar(Edit1.Text), PChar(ExtractFilePath(Application.ExeName) +
  87.      'backup' + ExtractFileExt(Edit1.Text)), True);
  88.  end;
  89.  
  90.  try
  91.    begin
  92.      change := BeginUpdateResourceW(PWideChar(wideString(Edit1.Text)), false);
  93.      LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
  94.        PWideChar(wideString(Edit2.Text)));
  95.      EndUpdateResourceW(change, false);
  96.      StatusBar1.Panels[0].Text := '[+] Changed !';
  97.      Form1.StatusBar1.Update;
  98.    end;
  99.  except
  100.    begin
  101.      StatusBar1.Panels[0].Text := '[-] Error';
  102.      Form1.StatusBar1.Update;
  103.  
  104.    end;
  105.  end;
  106. end;
  107.  
  108. procedure TForm1.Button4Click(Sender: TObject);
  109. begin
  110.  Form2.Show;
  111. end;
  112.  
  113. procedure TForm1.Button5Click(Sender: TObject);
  114. begin
  115.  Form1.Close();
  116.  Form2.Close();
  117. end;
  118.  
  119. procedure TForm1.FormCreate(Sender: TObject);
  120. begin
  121.  
  122.  OpenDialog1.InitialDir := GetCurrentDir;
  123.  OpenDialog2.InitialDir := GetCurrentDir;
  124.  OpenDialog2.Filter := 'Icons|*.ico|';
  125.  
  126. end;
  127.  
  128. end.
  129.  
  130. // The End ?
  131.  

Si quieren bajar el programa lo pueden hacer de aca (https://sourceforge.net/projects/dhiconchanger/).