WebBrowser1.Navigate kullanımı yardım

Başlatan isikyasar, 30 Ocak 2012, 18:32:32

isikyasar

Merhaba arkadaşlar.

vb6 kullanarak

WebBrowser1.Navigate ("http://www. adres kısmı1")
30 sn gecikme
WebBrowser1.Navigate ("http://www. adres kısmı2")
30 sn gecikme
WebBrowser1.Navigate ("http://www. adres kısmı3")
30 sn gecikme
WebBrowser1.Navigate ("http://www. adres kısmı4")
30 sn gecikme

yukarıdaki gibi her 30saniye arayla aynı  WebBrowser1 içinde adresler değişsin istiyorum.

BU KONUDA YARDIMLARINIZI BEKLİYORUM.

t2

#1
timer kulanırsın. süreyi 30 sn ayarlarsın. timer olayına bir sayı koyarsın sayı her defasında artar. sayıya göre karar verirsin case .. ile yapılır.

sayi = sayi +1
if sayi = 10 then sayi =0

Dim sayi As Integer
Select Case sayi
    Case 1 
WebBrowser1.Navigate ("http://www. adres kısmı1") 
    Case 2
..
End Select

isikyasar

4 tane farklı web sayfasını 30 saniye arayla sürekli olarak tek bir sayfa içinde dönmesini istiyorum.

t2

WebBrowser1.Navigate ("http://www. adres kısmı1")
dedikten 30 saniye sonra
WebBrowser1.Navigate ("http://www. HAS ADRESadres kısmı2")

DERSEN, 4 tane farklı web sayfası değil 40 tane de çevirirsin. yani adres yerine şebelek.kom yaz şebelek kom, önceki sayfa içinde açılır

isikyasar

WebBrowser1.Navigate ("http://www. adres kısmı1")
dedikten 30 saniye sonra
WebBrowser1.Navigate ("http://www. HAS ADRESadres kısmı2")


dedikten 30 saniye sonra    bu olayı nasıl yapacağım ı bilmiyorum. kodlamasını nasıl yazacağım.

30 saniye gecikme kodu nasıl yazılıyor.

t2

WebBrowser kullanımına dair bir örnek kod bulmanız gerek.
bir butonun klik olayına
WebBrowser1.Navigate ("http://www. adres.com")
kodunu yazarsanız o sayfayı açıyor olması gerek.
aynı kodu timer olayına yazarsanız periyodik olarak sayfa açmaya çalışacak. timer olayına şart eklerseniz her defasında farklı sayfalar açar.

http://support.microsoft.com/kb/304643

isikyasar


t2

Daha önce visual basic programı yaptıysan bunu da yapabilirsin.

Yapmadıysan önce bir visual basic programı yapıp, daha sonrabunu yapabilirsin.

İstersen şu arkadaşa hitaben soru sorabilirsin. Bildiğim kadarıyla visual basic konusunda uzmandır.

iyildirim

#8
Forma bir tane de timer nesnesi ekleyin. Toolbox dan forma sürüklemeniz yeterli.

Timer nesnesine tıklayın. f4'e basarak özellikler penceresini açın.. Interval değerini 30000 girin.. (ms olarak giriliyor.)
Timer nesnesine çift tıklayın
Açılan ekrana alttaki  kodu yapıştırın. (timer1_timer event'inin içine.. )

static sayac as integer

sayac = sayac + 1 

Select case sayac
case 1:  WebBrowser1.Navigate ("http://www. adres kısmı1") 
case 2: WebBrowser1.Navigate ("http://www. adres kısmı2") 
.....
case 5: sayac = 0 
end select

t2

hocam static sayac as int  şeklinde tanımlayınca global değişken haline mi geliyor ben pek vb bilmiyorum yoksa vb değişkenleri hep gloabal midir?

iyildirim

VB de procedure içinde tanımlanmış değişkenler global değildir.
Static ile global değil ama kalıcı olmasını sağlıyoruz.  Dim ile tanımlasaydık procedure her girişde değeri sıfır olurdu.

Modül içinde global olması için kodun en üstünde tanımlama yapılır. 
Modüllerde  "global" ile deklare edilen değişkenler her yerde geçerli olur.

Bu arada basic'de int  değil integer şeklinde tanımlanmalı.. Yanlış yazmışım..

isikyasar

Private Sub Timer1_Timer()
Static sayac As Integer

sayac = sayac + 1

Select Case sayac

Case 1: WebBrowser1.Navigate ("http://1. web sitesi")
Case 2: WebBrowser1.Navigate ("http://2. web sitesi")
Case 3: WebBrowser1.Navigate ("http://3. web sitesi")

Case 4: sayac = 0
End Select
End Sub

yukarıdaki kod gayet güzel çalışıyor.

ama şöyle bir sorun var.
Case1 deki açılan web sitesinin görüntülenmesi 10 saniye sürüyor ve sonra görüntü geliyor.
Case2 deki açılan web sitesinin görüntülenmesi 10 saniye sürüyor ve sonra görüntü geliyor.
Case3 deki açılan web sitesinin görüntülenmesi 10 saniye sürüyor ve sonra görüntü geliyor.

web sitesi açılıyor ve ekrana görüntünün gelmesiçin 10 saniyelik bir süre kadar "yükleniyor" diye bir uyarı geliyor bu nedenle  geç açılıyor.

bu sorunu nasıl kaldırabilirim.
teşekkürler.


t2

WebBrowser1'in  Busy Propertisi vardır. bu kontrol edilir.

if  not WebBrowser1.Busy .. diye bir şart yazılır.

iyildirim

Siteleri cache'lemek gibi birşey  yapılabilir..

WebBrowser1.Document.body.innerHTML  size web sayfasının source kodunu verir.

Web sayfalarının source kodunu ilk yüklemede cache'leyip daha sonra  direk atayabilirsiniz.

Bu durumda case blok'u yerine
WebBrowser1.Document.body.innerHTML  = sayfacache(sayac)  gbi bir kod olmalı..

Diğer bir yol bir kaç tane webbrowser kullanıp visible veya  zorder özelliği ile oynamak olabilir.