Gå til innhold

Anbefalte innlegg

Hei!

 

Jeg er ganske ny på VB.

Er det noen som vet hvordan jeg setter timeren til å oppdatere webbrowser1 hvert 10. sekund ved hjelp av webbrowser1.refresh?

 

 

Også en ting til:

Etter refreshen må den trykke OK eller drepe en dialog som kommer opp. Er det mulig ? :D

 

Takk :D

Endret av VisualStudio
Lenke til kommentar
Videoannonse
Annonse

(Eksempel følger i C#)

 

Helt øverst i klassen din (Form1 eller noe) legger du :

 

delegate void updateBrowserCallback();
bool ShouldIContinue;
BackgroundWorker bw;

 

Så legger du denne i Constructoren (eller på en knapp som skal starte oppdateringen):

 

ShouldIContinue = true;
bw = new BackgroundWorker();
bw.WorkerSupportsCancellation = true;
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);

bw.RunWorkerAsync();

 

Så lager du funksjonene:

 

void bw_DoWork(object sender, DoWorkEventArgs e)
{
   while(ShouldIContinue)
   {
       System.Threading.Thread.Sleep(10000);
       updateBrowser();
   }
}

private void updateBrowser()
{
   if (this.webbrowser1.InvokeRequired)
   {
       UpdateBrowserCallback u = new UpdateBrowserCallback(updateBrowser);
       this.Invoke(u, new object[]);
   }
   else
   {
       this.webbrowser1.Refresh();
   }
}

 

Noe slikt... kode fra hodet... :p

 

Så kan du ha en OnCancel-sak som setter ShoulIContinue false eller noe, for å stoppe :)

Endret av Manfred
Lenke til kommentar

Hvordan får jeg VB.NET til å trykke "Prøv på nytt" her http://tinypic.com/view.php?pic=4c10ncp

 

Og etter at den har valgt prøv på nytt vil den reloade siden, så kommer denne

http://tinypic.com/view.php?pic=2imb480

 

Der skal den gjerne trykke ok eller drepe dialogen, for så å gjøre alt dette i en loop.

 

 

Starte timer -> reload side -> prøv på nytt -> Dialog -> starte timer -> reload side -> prøv på nytt -> Dialog .....

 

 

jeg har lett, men jeg finner det ikke :|

 

Hvis noen kunne vært så snille, og hjulpet meg, hadde jeg satt veldig stor pris på det :)

 

Tusen takk ! :D

Endret av VisualStudio
Lenke til kommentar
Hvordan får jeg VB.NET til å trykke "Prøv på nytt" her  http://tinypic.com/view.php?pic=4c10ncp

 

Og etter at den har valgt prøv på nytt vil den reloade siden, så kommer denne

http://tinypic.com/view.php?pic=2imb480

 

Der skal den gjerne trykke ok eller drepe dialogen, for så å gjøre alt dette i en loop.

8406370[/snapback]

 

http://www.google.no/search?q=send+keystro...lient=firefox-a

Lenke til kommentar

Istedenfor backgroundworker:

 

* Dra en Timer kontroll fra toolboksen

* Velg interval og sett enabled = true

* Dobbeltklikk på den og skriv koden for å oppdatere siden...

 

 

KISS!

 

 

 

btw; er jo ikke noe poeng å lage en backgroundworker tråd som ikke gjør noe... Dvs. det den gjør er å *vente*... Dette er jo fordi det er GUI tråden som oppdaterer WebBrowseren til slutt uansett.....

Endret av jorn79
Lenke til kommentar
Hvordan får jeg VB.NET til å trykke "Prøv på nytt" her  http://tinypic.com/view.php?pic=4c10ncp

 

Og etter at den har valgt prøv på nytt vil den reloade siden, så kommer denne

http://tinypic.com/view.php?pic=2imb480

 

Der skal den gjerne trykke ok eller drepe dialogen, for så å gjøre alt dette i en loop.

8406370[/snapback]

 

http://www.google.no/search?q=send+keystro...lient=firefox-a

8408137[/snapback]

Jeg skla ikke programmere i C# !

 

VB.NET

Lenke til kommentar

Her har du et eksempel med vb.net som refresher vg hvert tiende sekund (Merk at her brukes ingen timer kontroll). Bare sett en webbrowser- og en button-kontroll på formen, lim inn koden og klikk kjør og klikk button1, så ser du hvordan det funker.

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

WebBrowser1.Navigate("http://vg.no")

Dim minTimer As New System.Windows.Forms.Timer()

AddHandler minTimer.Tick, AddressOf minTimerEventProcess

minTimer.Interval = 10000

minTimer.Start()

End Sub

 

Private Sub minTimerEventProcess(ByVal myObject As Object, _

ByVal myEventArgs As EventArgs)

WebBrowser1.Refresh()

End Sub

Endret av backup
Lenke til kommentar
btw; er jo ikke noe poeng å lage en backgroundworker tråd som ikke gjør noe... Dvs. det den gjør er å *vente*...  Dette er jo fordi det er GUI tråden som oppdaterer WebBrowseren til slutt uansett.....

8408145[/snapback]

Det kan du drite i :p Hehe. Det er mye morsommere med BW :D Timere er SO last season :p

Lenke til kommentar

BackgroundWorkere bør kun brukes til en endelig oppgave som evt tar tid. Ulempen med tråder er at de ikke kjører på GUI tråden og man må dermed Invoke en metode på GUI tråden for å utføre oppgave.

 

BackgroundWorkere synes jeg duger best til å kjøre oppgaver som blir startet fra en GUI. F.eks en knapp som skal utføre noe. Istedet for at GUI låser seg så skjer oppgaven async med BackgroundWorker. Sånt liker sluttbrukerne. Legger heller inn en fin animasjon mens backgroundworkern kjører.

 

Det kan kun kjøre ca 24-25 BackgroundWorker'e samtidig. Legger man til flere vil disse bare køes opp til de andre workerne er ferdig. Så om applikasjonen er avansert med behov for mange timere så kan det være veldig ulurt å bruke BackgroundWorker.

Lenke til kommentar

Skulle gjerne hjulpet deg, men jeg får ikke tak i hva du mener med:

 

Men hvordan får jeg VB programmet til å trykke "prøv på nytt" og "ok" på de følgende dialogene?

 

For å kunne programmere den riktige løsning, må jeg ha en mer detaljert og konkret forklaring å bite i!

Lenke til kommentar
Skulle gjerne hjulpet  deg, men jeg får ikke tak i hva du mener med:

 

Men hvordan får jeg VB programmet til å trykke "prøv på nytt" og "ok" på de følgende dialogene?

 

For å kunne programmere den riktige løsning, må jeg ha en mer detaljert og konkret forklaring å bite i!

8428518[/snapback]

Les post #5, så skjønner du hva jeg mener :)

Endret av VisualStudio
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...