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

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 :).

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.

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.

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
reply |
Report Obsolete
Last Articles
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 7 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- process timer
by luckynvic in Tip n Trik Pemrograman more 13 years ago - Finger Scan
by budi_bunga in Hal umum tentang Pascal Indonesia more 14 years ago - buat spy didelphi mohon bantuannya
by yufan in Hal umum tentang Pascal Indonesia more 9 years ago - Tab SHEET lebih menarik...
by akudana in Hal umum tentang Pascal Indonesia more 11 years ago - Deteksi error zeos
by om20020 in MySQL more 12 years ago - Bagaimana Cara install quick report di delphi 7
by wati in Tip n Trik Pemrograman more 12 years ago - Ngitung selisih waktu????
by khairulfahmi in Tip n Trik Pemrograman more 13 years ago - conect 2 pc melalui Akses Point
by umarbakri in Hal umum tentang Pascal Indonesia more 15 years ago - Save Image Gabungan
by andry_yang in Hal umum tentang Pascal Indonesia more 11 years ago - Trace di delphi, please help..
by langithitam in Hal umum tentang Pascal Indonesia more 12 years ago