Mengganti Ikon Suatu Folder

Teraplikasi pada: Delphi 3 ke atas, Win 2000, XP, di atasnya.

Tampilan Icon Folder
Sebuah folder yang secara default memiliki ikon berwarna kuning. Tampilan default ini sangat bermanfaat untuk membedakan folder dari objek-objek lainnya. Namun saat Anda telah memiliki banyak folder, misalnya folder-folder koleksi album lagu, kemungkinnan Anda repot mencari Rod Steward di antara Inul Daratista, Iyeth Bustami dan Mandy Moore. Dalam kondisi seperti inilah manfaat ikon unik per folder jadi sangat membantu. Anggap Anda sudah mengganti icon folder Rod Stewart tadi dengan sebuah foto Rod Stewart yang telah dikonversi menjadi ikon. Sekali tatap saja Anda sudah menemukan folder Album Rod Stewart.

Sekarang, bagaimana mengganti ikon folder ini?

Dengan software-software yang ada saat ini, mengganti ikon folder jadi sangat mudah. Icon Packager dapat melakukannya dengan baik. Sayang Icon Packager mengganti ikon secara keseluruhan, tidak spesifik per folder. Folder Option yang ada di Win 2000 ke atas juga bisa, tapi tidak ada opsi batch (banyak folder sekaligus) dan juga tidak ada opsi rekursi, bila Anda ganti ikon satu folder, folder-folder di dalamnya dan di dalamnya lagi akan terganti ikonnya.

Anda mungkin sudah menemukan software di jagad Net yang bisa memenuhi kebutuhan ini. Tapi jujur saja, untuk saya peribadi, TANGAN SAYA GATAL UNTUK MEMBUATNYA SENDIRI, SELAGI KEKASIHKU DELPHI ADA DI SISIKU MENEMANI.Dengan menambahkan nama saya di caption form “Created by JokoRB”, alamat blog saya di kiri bawa form – dan apa lagi – dan ya, foto saya yang ganteng 🙂 di kotak About, bukankah akan lebih hebat dan memuaskan untuk dipake?

Untuk mengubahnya, kita tinggal modifikasi file Desktop.ini di folder yang akan diubah ikonnya, atau membuatnya jika belum ada. Isi file Desktop.ini untuk menangani ikon sebuah folder kira-kira seperti ini:

[.ShellClassInfo]
IconFile=D:\reev\Icon\CNFNOT.ICO
IconIndex=0

Di mana IconFile menunjukkan file ikon yang akan digunakan, dan IconIndex menunjukkan urutan ikon dalam file ikon tersebut. Dengan menggunakan Method WriteString dan WriteInteger dari kelas TIniFile, semuanya jadi mudah, bukan?

Selanjutnya, tinggal kodenya di Delphi:


procedure TForm1.Button3Click(Sender: TObject);

var

folder, icon, desktop: String;

begin

folder:=Edit1.text;

icon:=edit2.text;

if not DirectoryExists(folder) then

begin

ShowMessage('Folder tidak ditemukan.');

Exit;

end;

icon:=Edit2.text;

if (not FileExists(icon))

or

(not (lowercase(ExtractFileExt(icon))='.ico')) then

begin

ShowMessage('File icon tidak valid.');

Exit;

end;

if folder[length(Folder)]<>'\' then

Desktop:=Folder + '\Desktop.ini'

else

Desktop:=Folder + 'Desktop.ini';

if fileExists(Desktop) then DeleteFile(Desktop);

With TIniFile.Create(Desktop) do

   begin

WriteString('.ShellClassInfo','IconFile',icon);

WriteInteger('.ShellClassInfo','IconIndex',0);

Free;

end;

SetFileAttributes(pchar(Desktop), 34);

SetFileAttributes(pchar(Folder), FILE_ATTRIBUTE_SYSTEM);

ShowMessage('Selesai.');

end;

Hanya itu? Ya, hanya ituScreen Shot

untitled.jpg
Folder Delph3i sebelum diganti ikonnya.

selesai.jpg
Proses penggantian ikon.

hasil.jpg
Folder Delph3i setelah diganti ikonnya.
Download
Download kode, EXE dan Screen Shot
(setelah download, ubah ekstensi ke .zip dan scan dulu sebelum dijalankan).

google_tag: jokorb, folder icon, delphi

18 thoughts on “Mengganti Ikon Suatu Folder

  1. Tentu saja bisa. Asalkan file ikon yang akan dipakai dikopi dulu ke flashdisk tsb:

    Silahkan ubah kode

    if fileExists(Desktop) then DeleteFile(Desktop);  
    

    Menjadi

    if fileExists(Desktop) then DeleteFile(Desktop);  
    CopyFile(PChar(Icon), PChar(ChangeFileExt(Desktop, '.ico')), False);
    Icon:=ChangeFileExt(Desktop, '.ico');
    SetFileAttributes(PChar(Icon), 34);
    

    Selamat mencoba!🙂

  2. waduh gw awam nich, bisa diurutin ga caranya, coz gw pusing amat harus mulai dari mana n gambarnya apa harus dirubah dulu jadi *.ico apa *.jpg bisa lngsung digunakan?
    apa program delphi harus ada untuk bisa melakukan trik ini?cos gw ga punya programn n ga ada komputer cm flashdisk
    thanks

  3. Tentu saja harus *.ico, *.jpg kaga’ bisa.

    Delphi hanya dipake untuk kompilasi saja. File EXE hasil kompilasi bisa dijalankan di semua Windows mulai 2000 ke atas, meskipun tanpa Delphi terinstall di sana.

    Sebagai referensi, silahkan cek FolderCustmizer di sini.

  4. Bro, aq udah bkin desktop.ini kya’ yg ente ajarin, tp ikonna te2p kga brubah, knp y..?

    Kbtulan ane jg bkin pke program ane ndiri, ntar ane kirimin lewat email aj gmn..? please check it out fer me, where’s the fault, ok..?

    Sbg ilustrasi, ane pke sebuah form dmn ad memo1, ntar skrip desktop.ini nya ane append di situ, trus ane SaveToFile sbg desktop.ini di folder target, tapi te2p kga bisa jg, knp..? why..? Doushite..? Pdhl skripnya udh bnr..

    Trus ane pke FolderCustomizer, lgsg bisa, pdhl skripnya sama.. emg salah dimana ya..?

  5. Oia, bro,

    aq mw bkin program yg bkalan berurusan sama registry, tp aq nggak tw caranya bwt bs nulis DWORD Value disitu..

    Aq udh bs klo cm nulis string di registry, tp klo DWORD..? Rencananya bwt manipulasi registry gt.. dlu aq udh pernah bkin dgn manfaatin menu advanced options di internet explorer, klo gak di folder options dgn nambahin submenu baru di treeviewnya.. kali ini aq mw bkin yg bnr2 beda, tp gak tw cara nulis DWORD pake delphi ke registry..

    Mohon wangsitnya, mbah.. wkwkwk =)

  6. Oia, satu lagi,

    Klo aq nulis string ke registry, gmn caranya biar aq bs ngubah nilai dari data (Deafult) di sebuah subkey..? Bwingung bgt dah..

    Kya’na ane bkl sering2 mampir nih ksni, wuehehe.. =)

    Salam kenal dari Crush_Station Corp.!

    • Bro, aq udah bkin desktop.ini kya’ yg ente ajarin, tp ikonna te2p kga brubah, knp y..?
      Bro, pasti ada yang Anda lupa….
      Doushite..? Pdhl skripnya udh bnr..
      What the hell???
      Download saja contoh saya yang saya berikan di atas dan silahkan ujicoba.
      Trus ane pke FolderCustomizer, lgsg bisa, pdhl skripnya sama.. emg salah dimana ya..?
      Seperti di atas, Anda pasti lupa sesuatu…
      Aq udh bs klo cm nulis string di registry, tp klo DWORD..?

      var r: Tregistry;
      ......
      //kalau string pake r.WriteString(nama, value);
      r.WriteInteger('contohDword',NilaiDword);
      .....
      

      Klo aq nulis string ke registry, gmn caranya biar aq bs ngubah nilai dari data (Deafult) di sebuah subkey..? Bwingung bgt dah..

      r.WriteString(nama, value);
      //nama dikosongkan untuk menulis nilai default
      //sebuah key, misalnya:
      r.WriteString('','Open With Notepad');
      

      Semoga membantu…🙂

  7. Hhehehehehehe..

    Udah bisa.. =) Ternyata atributna diganti ya? Kesalahanq kmrn aq cm generate desktop.ini tanpa ganti atributnya, he2.. sankyuu

    Oia, nanya lagi..

    Gimana caranya convert dari TColor jadi format heksa 0xFFFFFF dengan FFFFFF adl kombinasi RGB dari ColorDialog..

    Matur nuwun..

    • Sudah coba ubah ke hexa pake IntToHex()?

      var
        r,g,b:byte;
        col:TColor;
        sR, SG, SB: String;
        ResHex:String;
      //............................
      col:=ColorDialog1.Color;
      r:=GetRValue(col);
      G:=GetGValue(col);
      B:=GetBValue(col);
      sR:=IntToHex(r, 2);
      sG:=IntToHex(g, 2);
      sB:=IntToHex(b, 2);
      RexHex:='$'+sR+sG+sB;
      //......................
      

      Semoga membantu🙂

  8. Bro, aq mw usul ni,

    gmn klo dbuat posting ttg internal windows command?

    Mslhna aq kdg2 bingung jg klo misalna mw munculin dialog “change shortcut icon”. Gmn?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s