Txt dosyanın sağ tuş klikle birlikte aç , sonra diğer programlardan gözatı seç istediğin hangisi ile açılacaksa o programı seç ve default olarak ata.
yada
Windows Dosya Türü İşlemleri
sabanakman » 21 Kas 2008 09:46
Bir ara dosya tipleri ile ilgili (Dosya Tipi, Dosya Uzantısı, File Type arayan arama kutusuna ne yazmışsa artık , müdahele yapmak istedim ve karşıma çıkan bilgiler hep dağınıktı. Kendimce ihtiyaç duyduğum ve öğrendiğim kadarı ile tekrar derleyerek kolay bir kaynak olması açısından paylaşmak gerekir diyerek ancak bu bilgileri derledim. Aslında bilgi olarak pek fazla bir külfeti yok ama birde kütüphane olarak kodlayıp paylaşmak istedim.
Aslında bütün iş windows registry kayıtlarında dönüyor ve tüm işlemler HKEY_CLASSES_ROOT kök dizini altından gerçekleşiyor. Ayrıca registry için varsayılan anahtar (dizin) değeri olarak belirttiğim değerler isimsiz değelerdir ve @ karakteri kullandım. Örnek olarak akm uzantısı kaydı yapalım.
İlk iş uzantının solunda nokta '.' olacak şekilde bir dizin oluşturmak ve varsayılan değer olarak bir isim yazmak olacak.
HKEY_CLASSES_ROOT\.akm dizini oluşturulur ve varsayılan değer olarak bir isim yazılır. Bu isim asıl bilgilerin yazılacağı registry dizin ismidir.
.........|->@='akmDosyasi' -> yazalım. Artık .akm uzantısına ait bilgiler akmDosyasi registry dizini içerisindedir.
HKEY_CLASSES_ROOT\akmDosyasi .akm uzantısına ilişkin bilgiler bu dizindedir
.........|->@='akm Dosya Arşiv Türü' -> yazarsak, windows bize o dosyaya ait tür açıklasında bu bilgiyi gösterir.
HKEY_CLASSES_ROOT\akmDosyasi\DefaultIcon anahtar dizininde yazan değer ise o dosya türüne ait simgeyi belirler
.........|->@='c:\deneme\program.exe,0' -> .exe içinde bulunan simgelerden ilkini kullan
veya
.........|->@='c:\deneme\simge.ico' -> değeri ile o türden dosya artık yazdığımız simgeyi gösterir
Gelelim dosya türüne ait programı ilişkilendirmeye. Bu değerler ise HKEY_CLASSES_ROOT\akmDosyasi\shell altında bulunur ve yine burada bulunan open anahtarındaki varsayılan değer dolu ise o dosya sağ tıklanınca Aç seçeneği yerinde bu değer yazar.
HKEY_CLASSES_ROOT\akmDosyasi\shell\open
.........|->@='Akm Dosyası Açılıyor' Bu değer boşsa menüde Aç görünür (dile göre değişir). Bu değer dolu ise Aç yerine bu değer yazar.
HKEY_CLASSES_ROOT\akmDosyasi\shell\open\command
.........|->@='"c:\deneme\program.exe" "%1"'
Not..:Burada bulunan %1 bilgisi ilgili dosyayı 1. parametre olarak programa gönderir. Program içinden bu bilgi ParamStr(1) fonksiyonu ile elde edilir. Bknz..
aramCount, ParamStr.
Eğer bu dosya türüne sağ tuş menüsü olarak ek seçenekler eklenmek isterse shell dizini altına kendi tanımlarımızı yapıp ek yapabiliriz. Mesela menüden Yeni Seçenek olarak görünen bir Deneme işlevi ekleyelim.
HKEY_CLASSES_ROOT\akmDosyasi\shell\Deneme
.........|->@='Akm &Deneme Menüsü' -> O türden dosyaya sağ tıklayınca bu menü seçeneği eklenir. Eğer boşsa bu menü seçeneğinde Deneme yazar.
HKEY_CLASSES_ROOT\akmDosyasi\shell\Deneme\command
.........|->@='"c:\deneme\program.exe" "%1" "/yazdir"' ->O dosyaya ait sağ tuş menüsünden seçim yapılınca çalışacak işlev tanımı. 1. parametre dosya adı, 2. parametre ise /yazdir'dır. Tabi parametreye göre işlem yapmak programa kalmış. Bknz..
aramCount, ParamStr.
Bu konuda bir kaç kod karalamadan da paylaşım yapmak istemedim, Aşağıda verdiğim unit'le dosya türü kaydı yapılabilir, tür silinebilir, simge değiştirilebilir, o dosya türüne ait popup menü seçeneği eklenip, menü seçeneği silinebilir. Tabi burada sadece ekleme dışındaki tüm işlemler dosya türü kayıtlı ise çalışmaktadır. Ayrıca sadece registry bilgisi ile işlem yapıldığında dosya türüne ait görüntü değişimi oturum kapanmadan veya bir şekilde windows ekran görüntüsü tazelenmeden sağlanamamaktadır. Bununla ilgili simge görüntü tazeleme kodu da RefreshDesktop prosedüründe mevcut ve gerekli olduğunda çalışmaktadır. DosyaTurleri.pas dosyası..: