13 Şubat 2016 Cumartesi

Web Sayfasını İstediğimiz Klasöre Kaydettirmek

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