[vb6] ExeProgrammregiert nicht mehr; Arbeitet aber doch im Hintergrund

20/09/2010 - 10:58 von JDorn | Report spam
Hallo NG

Hab ein Prog zum Download einer bestimmte Seite , welches nach jeweils einer
Stunde die aktuellen Daten holt und in eine Datei speichert. Dazu wartet die
App 3600000 Milisec mit dem Sleep. Jedoch verschwindet nach einer kurzen
Zeit die Frameoberflàche und làst sich nicht wieder aktivieren um den
angebotenen Status einzusehen. Das Progi muß gekanzelt werden und ein
neustart ist erforderlich. Was mache ich falsch, oder positv formuliert wie
kann ichs besser machen.

Private Sub cmdStart_Click()
Dim i As Integer
Dim strurl As String
Dim datei As String
Dim Text As String
Dim F As Integer
Dim strReinerText As String
Dim zeit As Date
Dim x As String
Dim n As Long
Dim name As String
n = 1
MsgBox " Es werden stündlich die Daten heruntergeladen!"
zeit = Time
Label1.Caption = n

Do
strurl = "url" '


On Error GoTo 0
x = Inet1.OpenURL(strurl)
Sleep 600
name = ("c:/" & Date)
name = name & Hour(Time)
name = name & "Uhr.html"
Open name For Output As #1
Write #1, x
Close #1
Inet1.Cancel
' fertig
Text2.Text = name
Sleep 600

Text2.Text = "Fertig " & Time
Sleep 600
Label1.Caption = n
Me.Refresh

Sleep 3595800 ' Zusammen mit den Wartezeiten beim connect rund 1 Stunde
n = n + 1
Loop
MsgBox "Wegen Zeitüberschreitung abgebrochen!"
End Sub




Johann Dorner
 

Lesen sie die antworten

#1 Holger Niethen
20/09/2010 - 22:44 | Warnen spam
"JDorn" schrieb im Newsbeitrag
news:
Hallo NG

Hab ein Prog zum Download einer bestimmte Seite , welches nach jeweils


einer
Stunde die aktuellen Daten holt und in eine Datei speichert. Dazu wartet


die
App 3600000 Milisec mit dem Sleep.



Hallo Johann,

nimm lieber den Timer und stelle dort den Interval auf 3000 ms.
Dann im Code einen Zàhler von bis 1200 zàhlen lassen und danach deine
Routine aufrufen.

Könnte z.B. so aussehen:

Private Sub Timer1_Timer()
Static i As Integer

If i = 0 Then
'hier deinen Code eingeben
End If
i = i + 1
If i = 1200 Then i = 0

End Sub

Dann kannst Du jederzeit auf die Programmoberflàche zugreifen.

Gruß
Holger Niethen

Ähnliche fragen