Arsip: Mengambil semua ukuran Icon u/ suatu file type?

 
user image
more 14 years ago

_lmz

Seperti diketahui bersama, ada beberapa jenis virus yang hobi meniru icon file --- misalnya file Word (DOC) atau gambar folder. Tentu saja, ini menarik :). Dapat kita lihat bahwa sebetulnya gambar folder sendiri (misalnya) berbeda dari Win2K ke WinXP. Karena virus itu menggunakan gambar folder WinXP maka terlihat jelas di komputer saya (Win2K). Yang menjadi pertanyaan saya --- bagaimana cara saya mengambil icon u/ suatu file sembarang. Berikut hasil penyelidikan saya selama ini: icon sesuatu dapat diambil dari fungsi SHGetFileInfo. Akan tetapi nilai yang dihasilkan adalah tipe HICON. Dapat juga dengan menggunakan interface IExtractIcon method GetIconLocation -> ini akan menghasilkan pasangan nama dan index. Index di sini adalah index resource tipe RT_GROUP_ICON dalam file tersebut. Ini bisa dilihat melalui registry di bawah HKCR\NamaTipeFile\DefaultIcon Resource bertipe Icon Group sendiri dapat memiliki berbagai ukuran Icon seperti contoh berikut: 32 x 32 (16 colors) - Ordinal name: 388 48 x 48 (16 colors) - Ordinal name: 389 16 x 16 (16 colors) - Ordinal name: 390 48 x 48 (256 colors) - Ordinal name: 391 32 x 32 (256 colors) - Ordinal name: 392 16 x 16 (256 colors) - Ordinal name: 393 Tidak semua icon bisa dicari file dan index asalnya. Dari dokumentasi IExtractIcon::GetIconLocation:
GIL_NOTFILENAME The location is not a file name/index pair. Callers that decide to extract the icon from the location must call this object's IExtractIcon::Extract method to obtain the desired icon images.
Yang saya ingin tahu: Apakah dengan HICON itu saya dapat mendapatkan semua ukuran dan bit-depth di atas ataukah HICON itu cuma mewakili satu ukuran dan bit-depth. Bagaimana saya mendapatkan data bitmap (bentuk DIB?) dari HICON itu? Mohon bantuan para senior yang pakar soal Windows API. Kalau bisa sekalian source codenya :). Meskipun rasanya nanti saya akan membuatnya bukan dengan Delphi tapi dengan C (tanpa C library -- untuk ukuran program yang minimum). Sampai sekarang saya sudah berhasil mengambil resource Icon dari suatu file PE dan menuliskan datanya ke file. Tujuan saya berikutnya adalah membuat program sederhana yang bisa menerima file (misal dengan Drag&Drop) dan membuat duplikat dirinya dengan nama file dan icon seperti file yang diterimanya. Tentu saja icon yang sama ini untuk segala ukuran dan bit-depth :).
user image
more 14 years ago

_lmz

Oh ya, sekalian juga. Kalau dari HICON dapat aku dapatkan bitmapnya apakah bitmap itu juga bersifat palette/colormapped apabila icon aslinya juga memiliki palet? Ini penting karena rencananya bitmap ini akan ditulis kembali ke file EXE sebagai Icon Resource yang memerlukan palet.
user image
more 14 years ago

portege

_lmz,
...mengambil resource Icon dari suatu file PE ...
kira-kira file yang akan di-ekstrak file .exe (win32Application) aja atau semua file? karena bisa dilakukan pendekatan yang berbeda.
user image
more 14 years ago

_lmz

Bagian itu sudah jalan mas portege. Apabila saya mendapat pasangan (namafile, index icon group) maka anggap saja saya sudah bisa mengeluarkan iconnya dari sana. akan tetapi masalahnya adalah kalau dapatnya cuma HICON saja dari mana saya dapat data semua ukuran, palet dlsb. :)
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com