Bir uygulamam için uzun çabalardan sonra geliştirdiğim yöntemi size anlatmak istiyorum.
XP, son kaydedilen web sayfasının, kayıt yeri bilgisini
kayıt Defteri içerisinde
SOFTWARE\Microsoft\Internet
Explorer\Main anahtarı altında, SaveDirectory Dize değeri içerisinde tutar.
Kullanıcı, internetten yeni bir sayfa kaydetmek istediğinde, en son hangi
klasöre sayfa kaydı yapmışsa, Farklı Kaydet iletişim kutusu o klasörü
görüntüleyecek şekilde açılır.
Bizler
uygulamamızda bir webbrowser ile sayfa kaydetme işlemi yaptırmak amacındaysak
ve sayfanın örneğin uygulamanın bulunduğu dizinde bir klasöre kaydedilmesini
istiyorsak Kayıt defterindeki bu Dize Değerini değiştirmekle işe
başlayabiliriz.
Ben
bu işlemi yaparken sayın Arif AKTAŞ’ın
http://www.vbturk.net/idsorgula.asp?id=119 adresindeki “VB ile Registry Kullanımı” adlı
makalesindeki modül kodlarını mdlRegistry adlı module koyarak gerçekleştirdim.
Kendisine teşekkür ediyorum.
Option Explicit
Dim RegEskiDeğer As String
Dim RegYeniDeğer As String
Private Sub cmdSayfaKaydet_Click()
RegYeniDeğer = App.Path &
"\Kayıt Klasörü\"
RegEskiDeğer =
mdlRegistry.DegerOku(HCU, "SOFTWARE\Microsoft\Internet
Explorer\Main", "Save Directory")
DegerKaydet HCU,
"SOFTWARE\Microsoft\Internet Explorer\Main", "Save Directory",
RegYeniDeğer
End Sub
Ek olarak otomatik kaydetme özelliği eklenebilir. Ama bunu,
bazen sorun çıkartabilecek olan SendKeys metodu ile yapabildim şimdilik.
Aşağıdaki kodları forma yerleştirdiğim Timer’in Timer olayına ekledim.
cmdSayfaKaydet_Click() olayının başına
da Timer1’in Enabled özelliğini True yaparak Timer1_Timer olayını
tetiklemiş oldum.
Private Sub Timer1_Timer()
Dim
SayfaAdı As String
SayfaAdı =
“Benim sayfam”
SendKeys
SayfaAdı
SendKeys "{ENTER}"
Timer1.Enabled = False
End Sub
Bu kodları
Timer ile çalıştırmamın nedeni, Farklı Kaydet penceresi açıkken pencerenin
çağrıldığı yordamdaki diğer kodların çalıştırılamamasıdır. Farklı Kaydet
penceresinde Dosya Adı alanı seçili olduğu için SendKeys ile gönderdiğimiz SayfaAdı
stringi buraya yazılıyor. Kaydet butonu Default olduğu için de ENTER gönderimi
ile bu butona tıklamış oluyoruz.
Formun unload olayına aşağıdaki
kodu eklersek de uygulama, Sayfa Kaydet penceresinin ayarlarını eski haline
getirecektir.
DegerKaydet HCU, "SOFTWARE\Microsoft\Internet
Explorer\Main", "Save Directory", RegEskiDeğer
Hiç yorum yok:
Yorum Gönder