Kod:
http://www.kod27.com/
WEBBROWSER KONTROLÜ:
İnternet hemen hemen tüm bilgisayar kullanıcıları için vazgeçilmez bir ortamdır. Visual basic 5,0 sürümü ile internet ortamına geçiş yapmıştır. Visual basic 6,0 sürümü ile de yaygın bir uygulama aracına dönüşmüştür. İlk olarak webbrowser kontrolünü açıklamaya çalışacağım.
Çoğunuzun bildiği gibi internet gezginleri Html (Hypertext Markup Language ) dilinde yazılmış kodları derleyerek bize Web sayfası olarak sunar. Ençok kullanılan gezginler Internet Explorer ve NetScape Navigator programlarıdır. Webbrowser kontrolü ile bu gezginler gibi kendi programımızı yapabiliriz. Tasarlayacağımız program içerisine bu kontrol nesnesini ekleyerek programımızı zenginleştirebiliriz. Örnek bir proje uygulaması da göndererek ne şekilde bir ihtiyacı karşıladığını inceleyebilirsiniz. Bilgisayarınızda internet explorerr’ in 3 veya daha sonraki sürümü mevcut ise bu kontrol nesnesine sahipsiniz demektir.
Şimdi Visual basic de bir proje açarak işe başlayalım. Webbrowser kontrolünü eklemek için Ctrl+T kısa yol tuşu veya ProjectComponents menü komutu ile Components ileti penceresini açarak, bu ekran içerisinden Microsoft Internet Controls seçeneğini seçerek araç kutunuza dahil edebilirsiniz. Webbrowser controlünü dahil ettikten sonra formunuzun üzerine yerleştirin.
1- NAVİGATE METODU : Webbrowser kontronünün en önemli metodu Navigate metodudur. Bu metod bilgi olarak tek argüman alır. Bu argüman gösterilmesini istediğiniz lokasyonun adresini belirten stringden oluşur.
Bu metod şu şekilde kullanılır. WebBrowser1.Navigate(“www.vbturk.net”) Adresi “http://www.vbturk.net” olarak yazmanıza gerek yoktur. Gerekli argümanı kendisi eklemektedir. Örnek :
Private Sub Form_Load()
On error Resume Next
WebBrowser1.Navigate (“www.vbturk.net”)
End Sub
Projeyi çalıştırdığınızda sayfanızın yüklendiğini göreceksiniz. Bu şekilde değerimiz sabit olduğu için formumuz yüklenirken hep aynı sayfa açılacaktır. İstediğimiz sayfayı göstermesi projemizi daha kullanışlı yapacaktır. Şimdi formumuza bir metin kutusu birde buton ekleyelim. Butonumuzun ismini goster, metin kutusunu da Adres olarak değitirelim.
Private Sub goster_Click()
On Error Resume Next
WebBrowser1.Navigate Adres.Text
Form1.Caption = Form1.Caption + WebBrowser1.LocationURL
End Sub
Navigate metodunu kullanmadan önce muhakkak hata kontrol ifadesini eklemelisiniz. Aksi takdirde bağlantının kopuk olduğu zaman programınız kırılarak hata verecektir. Navigate metdodunun genel yazımı şöyledir.
WebBrowser1.Navigate URL [Bayraklar,] [hedef çerçeve ismi,] [postdata,] [başlıklar]
URL : Uniform Resource Locator( bir biçimli kaynak yeri saptayıcısı) kelimelerini baş harflerinin kısaltılmasıdır. Görüntülenmesini isteğiniz yerin adresi için kullanılır. Navigate metodunun tek zorunlu argümanıdır.
Bayraklar: (flags) parametresinin kullanımı isteğe bağlıdır. Bu parametre kullanıldığı takdirde, internet’te sörf yapılırken uğranılan yerin, bu sörfe ait gezi tarihçesinde yer alıp almayacağını belirler. Bayraklar parametresi kullanıldığı takdirde aşağıdaki değerleri alır.
SEMBOLİK SABİT DEĞERİ ANLAMI
NavOpenInNew Window 1 Bağlantıyı yeni pencerede açar
NavNoHistory 2 Yeni erişilen bağlantıyı gezi tarihçesine
eklemez
NavNoReadFromCache 4 Cache bellekte saklanan kopya varsa bu
Bu kopyayı okuma
NavNoWriteToCache 8 Html sayfasını, Lokal Cache bellek
Üzerine yazma
Hedef Çerçeve İsmi (TargetFrameName) parametresi, kullanıma isteğe bağlı bir parametredir. Kullanıldığı takdirde sayfanın yeni bir çerçeve içinde görüntülenmesini sağlar.
PostData : Bu parametre de isteğe bağlı bir parametredir. Bu parametre kullanılırsa Navigate metodu Html GET metodunu kullanır. URL bir Web sayfası değilse bu parametre ihmal edilir.
Başlıklar(Title): bu parameterede isteğe bağlı kullanılabilir. İnternet üzerinde kendisinden yüklemek istediğiniz web sayfasını taşıyan Html sunucusuna ilave bilgi göndermesini sağlar. Tabi sunucu buna izin veriyorsa yapabilirsiniz.
2-LOCATİONNAME ÖZELİLİĞİ: Webbrowser kontrol nesnesinin o esnada görüntülemekte olduğu web sayfasına ait başlığı gösterir.
3-LOCATİONURL ÖZLİLİĞİ : Bu özellik görüntülenmekte olan sayfanın adresini verecektir.
Gezginimize statusbar ekleyerek daha kullanışlı ve görsellik kazandırabiliriz.
Statusbar1.simpletext=webbrowser2.locationurl
4- GOBACK METODU: Sayfalarda dolaşırken, bulunduğunuz sayfadan bir önceki sayfaya geri dönüşü sağlar
5- GOFORWARD METODU: Sayfalarda dolaşırken, daha önceden eriştiğiniz sayfadayken GoBack ile geri gitmeniz durumunda tekrar bir sonraki sayfalara gitmenizi sağlar.
6- GOHOME METODU: Giriş sayfanıza gitmenizi sağlar
7-GOSEARCH METODU: Sayfanın arama işlemini gerçekleştirmek için bu komut kullanılır.
8- GOREFRESH METODU: Bulunduğunuz sayfayı yenileyerek günceller.
9- GOSTOP METODU: Sayfaya bağlanma işlemini durdurur.
Diğer metodlarıda size bırakıyorum. Bunları da programınızda deneyerek keşfedeceğinizden eminim.
WEBBROWSER NESNESİNİN OLAYLARI:
Burada önemli bulduğum olaylardan bahsedeceğim. Toplam 23 adet olayı tanımlıdır.
1-BEFORENAVİGATE: web sayfası bir sayfaya bağlanmadan önce bu olay meydana gelir.
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
StatusBar1.SimpleText = WebBrowser1.LocationURL
Form1.Caption = Form1.Caption + WebBrowser1.LocationURL
MousePointer=VbHourglass
End Sub
2-DOWLOANDBEGİN OLAYI: Bu olay web sayfasının yüklenmesi sırasında meydana gelir.
Private Sub WebBrowser1_DownloadBegin()
On Error Resume Next
StatusBar1.SimpleText = "Yükleniyor"
End Sub
3-DOWLOANDCOMPLETE : Bu olay web sayfasının yüklenmesi tamamlanınca meydana gelir. Bu olayı NavigateComplete olayı ile karıştırmayın. DowloandComplate sayfanın yüklenmesi başarılı olsa da olmasa da çalışacaktır. Ama NavigateComplate istenen sayfa tamamen yüklenip başarılı bir şekilde ulaşıldığında sağlanmaktadır.
Private Sub WebBrowser1_DownloadComplete()
On Error Resume Next
StatusBar1.SimpleText = "Aktif sayfa :"
WebBrowser1.LocationNameURL = " & WebBrowser1.LocationURL"
MousePointer = vbDefault
End Sub
4-NAVİGATECOMPLETE : Bu olay sayfanın yükleme işi başaralı bir şekilde bittiğinde meydana gelir.
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
StatusBar1.SimpleText = WebBrowser1.LocationURL
Form1.Caption = Form1.Caption + WebBrowser1.LocationURL
End Sub
5- PROGRESSCHANGE : Bu olay belirli aralıklarla sürekli çalışır. Progress ve ProgressMax isimli iki parametresi bulunur. Yükleme işlemini ilerleyen çubuk ile kullanıcıya bildirilmesi aşağıdaki örnekteki gibi yapılabilir.Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
ProgressBar1.Value = Progress * 100 / ProgressMax
End Sub
NOTLAR: Bu kontrol nesnesi ile ilgili özellikleri kullanarak daha kullanışlı, gelişmiş programlar geliştirebilirsiniz. Benim işime basit bir program ile çok yaramıştı. İnternetten öğrencilerin sınav sonuçlarını almam lazımdı. Web sayfası ve kullandığım program arasındaki geçişi hesaplayınca ve artı 450 öğrenci olduğunu katarsak işim çok zordu. Ama ben formuma bu kontrolü ekledim ve veri bağlantısı ile öğrencilere tek tek eriştim. Ve sayfanın başlığına aday numaralarını yollayarak sonuçları hızlı bir şekilde aldım. Bununla ilgili bir örneği sizlere sunarlarsa yolluyorum. Bu ders ile ilgili bir kod ekleyerek yazımı tamamlıyorum. Başarılı çalışmalar diliyorum. Azminizi kaybetmeyin. Ve unutmayın bildiğinizi paylaşın, yoksa sizde bilmemiş olarak kalacaktınız.
Private Sub form_click()
StatusBar1.SimpleText = WebBrowser1.LocationURL
End Sub
Private Sub Form_Resize()
StatusBar1.Height = 1.2 * TextHeight("I")
WebBrowser1.Left = 0
WebBrowser1.Width = Form1.ScaleWidth
WebBrowser1.Height = Form1.ScaleHeight
End Sub
Private Sub goster_Click()
On Error Resume Next
WebBrowser1.Navigate (Adres.Text)
Form1.Caption = Form1.Caption + WebBrowser1.LocationURL
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "geri"
On Error Resume Next
WebBrowser1.GoBack
End Select
Select Case Button.Key
Case "ileri"
On Error Resume Next
WebBrowser1.GoForward
End Select
Select Case Button.Key
Case "dur"
On Error Resume Next
WebBrowser1.Stop
End Select
Select Case Button.Key
Case "yenile"
On Error Resume Next
WebBrowser1.Refresh
End Select
Select Case Button.Key
Case "home"
On Error Resume Next
WebBrowser1.GoHome
End Select
Select Case Button.Key
Case "ara"
On Error Resume Next
WebBrowser1.GoSearch
End Select
Select Case Button.Key
Case "mail"
defter.Show
End Select
End Sub
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
On Error Resume Next
StatusBar1.SimpleText = "Sayfaya Bağlanıyor..." & URL
MousePointer = vbhoruglass
End Sub
Private Sub WebBrowser1_DownloadBegin()
On Error Resume Next
StatusBar1.SimpleText = "Yükleniyor"
End Sub
Private Sub WebBrowser1_DownloadComplete()
On Error Resume Next
StatusBar1.SimpleText = "Aktif sayfa :"
WebBrowser1.LocationNameURL = " & WebBrowser1.LocationURL"
MousePointer = vbDefault
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
StatusBar1.SimpleText = WebBrowser1.LocationURL
Form1.Caption = Form1.Caption + WebBrowser1.LocationURL
End Sub
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
ProgressBar1.Value = Progress * 100 / ProgressMax
End Sub