kali ini saya akan berbagi pengalaman dan solusi bagi teman2 programmer tentang bagaimana sih cara membuat icon pada file ekstensi buatan sendiri.
mungkin masih bingung ya dengan apa yang saya maksud, gini loh, misalkan ada file .doc atau .docx nah file itu kan milik dari microsoft untuk aplikasi office word.
ketika microsoft office tidak terinstall di Sistem Operasi kita, pasti file2 berekstensi .doc dan .docx file icon nya pasti ngk seperti di gambar di atas, baru ketika setelah install aplikasi microsoft office baru file2nya tampak seperti di atas.
nah kasus kita kali ini adalah kita akan membuat file ekstensi sendiri yang berakhiran di belakang dot(.) milik atau buatan kita sendiri, dan membuatnya tampak menarik dan profesional.
yang kita butuhkan adalah siapkan file icon yg nantinya akan jadi icon dari ekstensi milik aplikasi buatan kita kemudian mendaftarkan icon tersebut ke registry OS windows.
berikut standarnya kunci registrynya untuk mendaftarkan ekstensi dan icon aplikasi kita :
HKEY_CURRENT_USER\Software\Classes\.myfile
HKEY_CURRENT_USER\Software\Classes\MyAppDataFile
HKEY_CURRENT_USER\Software\Classes\MyAppDataFile\DefaultIcon
HKEY_CURRENT_USER\Software\Classes\MyAppDataFile\Shell\open\command
keterangan:
.myfile adalah nama ekstensi file yg kita buat misalnya microsot punya .doc
MyAppDataFile adalah nama registry yg kita daftarkan untuk aplikasi kita.
DefaultIcon adalah icon standar yg kita daftarkan untuk jadi icon ekstensi aplikasi kita
Shell open command ini adalah perintah untuk menjalankan aplikasi kita (untuk yg ini kita bahas diselanjutnya ).
bonus, ini contoh coding untuk delphi yg juga saya gunakan.
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
if OpenKey('\Software\Classes\.myfile', true) then
WriteString('', 'MyAppDataFile');
if OpenKey('\Software\Classes\MyAppDataFile', true) then
WriteString('', 'My Very Own Text File Type');
if OpenKey('\Software\Classes\MyAppDataFile\DefaultIcon', true) then
WriteString('', 'C:\WINDOWS\snotepad.exe');
if OpenKey('\Software\Classes\MyAppDataFile\shell\open\command', true) then
WriteString('', 'C:\WINDOWS\snotepad.exe "%1"');
finally
Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);