URL protokolleri nedir?
Aslında bunları sık sık kullanıyorsunuz. Mesela en çok bilinen protokol “http:” protokolüdür herhalde. “http” protokolü ile URL’nin (link de diyebilirsiniz, ya da adres...), web sayfası olduğu anlaşılır. Aynı şekilde “ftp:” protokolü ile dosya transfer url’sini belirlersiniz. Bunlara daha başka örnek verirsek: “mailto:” ile mail adreslerini, “ed2k:” e-donkey paylaşım ağını, “msdn:” ile msdn yardım dosyalarını vs... ifade edersiniz.
Peki bunları nasıl yönetebiliriz?
Örnekle açıklayalım: eğer sisteminizde e-donkey, overnet, emule gibi e-donkey ağını kullanan bir program var ise, internet explorer’ın adres bölümüne “ed2k://deneme” şeklinde bir url girin. Göreceksiniz ki kurmuş olduğunuz e-donkey paylaşım programı çalışacak ve girmiş olduğunuz url’yi alıp kullanacaktır. Aynı şekilde “mailto:someone@mail.com” gibi bir url girerseniz, bu sefer mailto protokolü devreye girip outlook, eudora, yahoo-mail veya hangi mail programı kurulu ise onu çalıştıracaktır. Ve girmiş olduğunuz url parametre olarak geçecektir. Böylelikle birilerine mail programınız ile mail gönderebileceksiniz.
Bu iş nasıl oluyor ve ben nasıl yaparım?
Aslında her protokol registry’de kayıtlı anahtardan başka bir şey değildir. Bu kayıt HKEY_CLASSES_ROOT anahtarı altındadır. Başlat(Start)/Çalıştır(Run) ile gelen TextBox’a “regedit” yazıp enterleyin. Sol bölümden HKEY_CLASSES_ROOT anahtarını açın. Buradan hangi protokolü arıyorsanız bulabilirsiniz. Diyelim ki yeni bir mail programı yaptınız ve maillerin outlook yerine kendi programınız ile gönderilmesini istiyorsunuz. Mesela birisi web sayfasından “mailto:someone@mail.com” bağlantısına tıklayıca kendi programınızın çalışmasını istiyorsunuz. O zaman açtığınız bölümden “mailto” isimli anahtarı aramalısınız. Ve bu anahtardan shell/open/command alt anahtarlarını seçip, sağ bölümde beliren kısma kendi programınızın yolunu girmelisiniz.
Ya da diyelim ki, bir veritabanı programı yaptınız. Ve raporları görmek isteyen kişinin internet explorer yardımı ile görmesini istiyorsunuz. Mesela “raporlar://05.03.2003” gibi bir adres ile “05.03.2003” tarihli tabloyu raporlamak istiyorsunuz. Bunun için “raporlar” protokolünü oluşturmanız gerekir. Bunun için aşağıdaki 4 basit maddeyi sırası ile yapmalısnız.
1. HKEY_CLASSES_ROOT anahtarı altına ilk önce raporlar isimli bir anahtar(Key) oluşturun(HKEY_CLASSES_ROOT yazan yere sağ tuşla tıklayıp Yeni (New) / Anahtar (Key) ), daha sonra bu yeni anahtar altına DefaultIcon ve shell isimli iki anahtar daha açmalısınız. Yine “shell” anahtarı altına open anahtarı ve “open” anahtarı altına command anahtarı oluşturmalısınız. hehhhh.
2. İşte, “command” anahtarı sizin programınızın adresidir. “command” anahtarını aktifleştirip sağ bölümde “(Default)” yazan yere çift tıklayın. Gelecek pencerede değer olarak programın adresini girin. Mesela "c:\rapor.exe" %1 gibi bir değer girin(Tırınaklar yazılacak, %1 i unutmayın).
3. Bu protokole bir de icon atayabilirsiniz. Bunu da “DefaultIcon” anahtarını aktifleştirip, yine sağ bölümde (Default) üzerine çift tıklıyoruz. Gelen bölüme ya programın adresini, ya da belirlediğiniz bir icon adresini girin.
4. Son olarak protokolünüzü sisteme tanıtmanız gerekiyor. Oluşturmuş olduğunuz “raporlar” isimli anahtarı aktifleştirin. Yine sağ bölümde bulunan (Default) yazan yere çift tıklayın. Değer olarak URL: Raporlar Protocol girin. Yine sağ bölümde boş bir yere sağ tuş ile tıklayın. Yeni (New) / String Değer (String Value) (bende ing. windows var. String türkçeye nasıl çevrilmiş bilemiyorum.) ile yeni bir değer açın. Gelen pencerede İsim(Name) olarak URL Protocol girin ve enterleyin. İşlem bitti.
Tüm bu işlemler sonunda registry görünümü şu şekilde olmalıdır:
Kod: Tümünü seç
├HKEY_CLASSES_ROOT\raporlar
├─►(Default) REG_SZ URL:Raporlar Protocol
└─►URL Protocol REG_SZ
-------------------------------------
├HKEY_CLASSES_ROOT\raporlar\DefaultIcon
└─►(Default) REG_SZ "C:\raporlar.ico"
-------------------------------------
├HKEY_CLASSES_ROOT\raporlar\shell
└─┬HKEY_CLASSES_ROOT\raporlar\shell\open
└─┬HKEY_CLASSES_ROOT\raporlar\shell\open\command
└─►(Default) REG_SZ "c:\raporlar.exe" %1
İsteyen olursa Delphi'de yapılmış küçücük bir örnek yollayabilirim.
Kolay Gelsin...