[VB.net] Timer länger als 60 Sekunden // Webbrowser Control

NudelMC

Well-known member
ID: 46722
L
16 Juni 2006
178
5
Moin

ich bräuchte ein bisschen Hilfe um einen Timer auf z.b. 20 Minuten zu stellen bzw ein event nur alle 20 min auszulösen, jemand ne idee?

Außerdem spiele ich mit den WebbroserControls seit einer weile, allerdings ist mir noch keine Funktion untergekommen welche mir ein true oder sonst was gibt wenn die Seite VOLLSTÄNDIG geladen ist.
Das muss doch auch irgendwie realisierbar sein?!

Danke fürs lesen,
Nudel
 
Ich kenne das Problem vom normalen VB. Da kann man dem Timer max. 64000 ms zuweisen. Das reicht dann für ganze 64 Sekunden.

Ich habs dann gelöst, in dem ich den Timer auf 60 Sekunden gestellt habe und bei jedem Event einen Zähler hochgeschraubt habe, bis die gewünschte Anzahl Minuten erreicht war. Dann im Timer-Event abfragen, ob der Zähler jetzt auf x (Minuten) steht und dann den gewünschten Code ausführen. Nun den Zähler wieder auf 0 und es geht wieder von vorne los.

Ist vielleicht nicht die glücklichste Lösung, aber funktional auf alle Fälle ^^
 
HoloDoc schrieb:
Ich kenne das Problem vom normalen VB. Da kann man dem Timer max. 64000 ms zuweisen. Das reicht dann für ganze 64 Sekunden.

Ich habs dann gelöst, in dem ich den Timer auf 60 Sekunden gestellt habe und bei jedem Event einen Zähler hochgeschraubt habe, bis die gewünschte Anzahl Minuten erreicht war. Dann im Timer-Event abfragen, ob der Zähler jetzt auf x (Minuten) steht und dann den gewünschten Code ausführen. Nun den Zähler wieder auf 0 und es geht wieder von vorne los.

Ist vielleicht nicht die glücklichste Lösung, aber funktional auf alle Fälle ^^

Jo, so würd' ich das auch machen ;)

NudelMC schrieb:
Außerdem spiele ich mit den WebbroserControls seit einer weile, allerdings ist mir noch keine Funktion untergekommen welche mir ein true oder sonst was gibt wenn die Seite VOLLSTÄNDIG geladen ist.
Das muss doch auch irgendwie realisierbar sein?!
Soweit ich weis, gibt
webbrowser.busy
an ob der Browser noch läd und das Event
webbrowser_NavigateComplete()
wird ausgelöst wenn er fertig mit laden ist.
 
wie man sehen kan ob eine seite komplett geladen ist sieht dann so aus


Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
' Prüfen, ob Seite vollständig geladen ist
If (pDisp Is WebBrowser1.Object) Then
Label1.Caption = "Dokument komplett geladen."
Else
Debug.Print "Loading..."
End If
End Sub

mit dieser rountine ist es wirklich sicher da ja auch frame seiten gibt und die funktion zeigt dann wirklich erst an wenn auch alle frames geladen sind.

muss man nur abändern wo das angezeigt werden soll weiß ja nicht wie du es machen willst


gruss Diablo2k
 
HoloDoc schrieb:
Ich kenne das Problem vom normalen VB. Da kann man dem Timer max. 64000 ms zuweisen. Das reicht dann für ganze 64 Sekunden.

Ich habs dann gelöst, in dem ich den Timer auf 60 Sekunden gestellt habe und bei jedem Event einen Zähler hochgeschraubt habe, bis die gewünschte Anzahl Minuten erreicht war. Dann im Timer-Event abfragen, ob der Zähler jetzt auf x (Minuten) steht und dann den gewünschten Code ausführen. Nun den Zähler wieder auf 0 und es geht wieder von vorne los.

Ist vielleicht nicht die glücklichste Lösung, aber funktional auf alle Fälle ^^

So mache ichs auch immer (in VB) nur halt immer in Sekunden ;) also halt timer auf 1000ms stellen ^^ weil damit dann leichter genauere Zeitabstände erzeugt werden können
 
CokeFreak schrieb:
So mache ichs auch immer (in VB) nur halt immer in Sekunden ;) also halt timer auf 1000ms stellen ^^ weil damit dann leichter genauere Zeitabstände erzeugt werden können


ich hoffe ihr wisst das das timer control in vb nie genau war und so was ich hier aufgelistet habe immer noch die beste native ist mit der api

hoffe das mit dem seite komplett hat geklappt
 
Diablo2k schrieb:
ich hoffe ihr wisst das das timer control in vb nie genau war und so was ich hier aufgelistet habe immer noch die beste native ist mit der api

hoffe das mit dem seite komplett hat geklappt
so ungenau is das nicht, kannst dir mal son prog schreiben und dann einmal vb und einmal ne andre stoppuhr laufen lassen. erst wenn das programm stark beansprucht wird und der timer in den hintergrund kommt gibts probleme.

man könnte auch z.b. ne schleife ablaufen lassen mit doevents (oder einfach einen timer), vor der schleife die zeit nehmen und bei jedem durchgang die zeit überprüfen und bei zeit + x nen befehl ausführen ;) wobei dadurch halt (falls man die schleife nimmt) das prog dauernd auf 100% leistung is