klasörün simgesini degiştirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

klasörün simgesini degiştirmek

Mesaj gönderen abdulkadir »

S.A
programım'ın bulundugu klasörün simgesini (Icon)
program içinden kodla bana ait bir simge ile nasıl degiştirebilrim

reg e yazılıyor galiba ama kurcaladım bulamadım.
Basarılar.
S.A
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

A. S.

Wmware programı bahsettiğiniz işlemi yapmış. Bu program, simgesi değiştirilecek klasörde desktop.ini(arşiv, salt okunur ve de gizli) isimli bir dosya oluşturuyor ve .ico dosyasını da aynı klasöre kopyalıyor. Desktop.ini'nin içeriği şu şekilde:

Kod: Tümünü seç

[.ShellClassInfo]
IconFile="vm_folder.ico"
IconIndex=0
InfoTip=Contains VMware virtual machine files.
ConfirmFileOp=0
Ancak ben bu dosyaları başka bir klasöre taşıdığımda simge değişmedi :!: . Bu işin başka bir yöntemi daha var galiba. Ben de merak ettim şimdi...
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

Bu konuyla ilgili aşağıdaki kodu buldum. URL http://www12.brinkster.com/karflake/dos ... ericon.zip
En son karflake tarafından 19 Oca 2005 08:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

sadece ini dosyaları taşımak yeterli olmuyor. dizinin özelliklerini de değiştirmeniz gerekiyor.

zamanında bu işi yapan bi prg yazmıştım.
önemli kodları aşağıda...

Kod: Tümünü seç

inifile :=TIniFile.Create(edFolderPath.Text + '\Desktop.ini');
with iniFile do
  begin
    //These are the lines that will change the icon
    WriteString('.ShellClassInfo', 'IconFile',  edIconPath.Text);
    WriteString('.ShellClassInfo', 'IconIndex', edIconIndex.Text);
    WriteString('.ShellClassInfo', 'InfoTip', edInfo.Text);
    UpdateFile;
  end;
  inifile.Free;

SetFileAttributes(PChar(edFolderPath.Text), FILE_ATTRIBUTE_SYSTEM);

if Length(edFolderPath.Text) > 3 then
begin
   tempDir := Copy( edFolderPath.Text, 1,pos(edFolderPath.Text, '')-1);
   SetFileAttributes(PChar(tempDir), FILE_ATTRIBUTE_SYSTEM);
end;
    ShowMessage('Klasör özelleştirildi');
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Cevaplarınız için tesekkür ederim

yükledigim bazı programda bu tür seyler görünce merak ediyorum

cevabı aldıktan sonra hemen baktım destop.ini var idi ve içerigi

Kod: Tümünü seç

[.ShellClassInfo]
IconFile=C:\Program Files\Axialis\IconWorkshop\axlibico.dll
IconIndex=6
konusu acılmısken
dll icine icon imagelistemi eklenip cagrılıyor
bunu daha öncedende merak ettmiş ve ugrasmıstım ama fos cıkmıstı

beni bu konuya iten ise windows un
%SystemRoot%\system32\SHELL32.dll
dosyası idi sistemdeki tum iconlar burda

fazla kafa karıstırmayayım saatte epey gec oldu .

özetle
dll içine icon nasıl eklenir ve kullanılır.

NOT(Bunun yazmadan önce forumda bu konu ile ilgili arama yaptım ama sonuc yetmedi)

şimdiden tesekkürler.
basarılar.
Cevapla