Automatische Aktualisierung?!

  • Hallo,
    ich bastel des öfteren mit AutoIt3 rum, nun wollte ich ein Script bauen was permanent bzw. in gewissen zeitabständen eine Datei runterläd und ausliest und dies dann in einem GUI anzeigt.

    Er öffnet, downloadet und liest es 1x aus, jedoch bekomme ich es nicht gebacken, dass er es regelmäßig erneuert!

    Hier der Code:

    [autoit]

    #include <GuiConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit]

    ; GUI
    GuiCreate("Sascha3008s Greeting Viewer", 600, 100,0 ,0 )
    ; GUI MESSAGE LOOP

    [/autoit][autoit][/autoit][autoit]

    While(1)
    InetGet ( "http://www.sascha3008.de/test.txt", "C:\Windows\Temp\j594nw9j.txt" )
    $f=FileOpen("C:\Windows\Temp\j594nw9j.txt",0)
    $s=FileRead($f,1000)
    GUICtrlCreateLabel( $s, 0, 0, 600)

    [/autoit][autoit][/autoit][autoit]

    If $f = -1 Then
    GUICtrlCreateLabel( "FEHLER: Datei nicht gefunden!", 0, 0, 600)
    EndIf
    FileClose($f)

    [/autoit][autoit][/autoit][autoit]

    GuiSetState()
    While GuiGetMsg() <> $GUI_EVENT_CLOSE
    WEnd

    [/autoit]

    Mit While hab ich es schon versucht, klappt aber nicht da er dann folgendes nicht ausführt:

    [autoit]

    GuiSetState()
    While GuiGetMsg() <> $GUI_EVENT_CLOSE
    WEnd

    [/autoit]


    Und wenn er das nicht ausführen kann, bleibt das Fenster nicht offen(bzw. öffnet es erst garnicht) und das ganze endet in einer Endlos schleife.

    Habt ihr eine Idee was ich machen könnte?

    Mfg,
    Sascha3008

  • So müsste es gehen... (GUICtrlSetData statt GUICtrlCreateLabel und eine vernünftige Schleife)

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("Sascha3008s Greeting Viewer", 600, 100,0 ,0 )
    $label = GUICtrlCreateLabel("", 0, 0, 600)
    GuiSetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select

    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    Case Else
    InetGet ( "http://www.sascha3008.de/test.txt", "C:\Windows\Temp\j594nw9j.txt" )
    $f=FileOpen("C:\Windows\Temp\j594nw9j.txt",0)
    If $f <> -1 Then
    $s=FileRead($f,1000)
    GUICtrlSetData($label,$s)
    Else
    GUICtrlSetDate($label,"FEHLER: Datei nicht gefunden!")
    EndIf
    FileClose($f)

    EndSelect
    Sleep (100) ; verringert die CPU-Last
    WEnd

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (5. August 2008 um 12:23)

  • Hmmm, ne leider nicht.
    Der Text flackert(wegen dem laden) aber wird nicht aktualisiert.

    Trotzdem danke!

  • Moin,

    du könntest dein Skript auch so gestalten, dass du das runterladen und anzeigen nur einmal machst.
    Dann das Programm in die geplanten Tasks und dann kannst du super den Zeitintervall einstellen wie oft es ausgeführt werden soll.
    (Vorrausgesetzt du benutzt Windoof, weiß nich ob es bei anderen OS was ähnliches gibt...)

    Vielleicht hilft aber auch schon der Tipp von Oscar.
    Tschausen

    Ben

  • Aber wenn das Skript sich selbst neu startet muss ich das Skript ja immer am laufen haben.
    Auch wenn es vllt nix macht aber es muss laufen...
    Oder lieg ich falsch?

    Grüße
    Ben

  • Also ich habe jetzt den Ratschlag vom Oscar befolgt und dieser Funktioniert auch nicht, da ja nur die Datei erneut Runtergeladen wird, aber nicht nochmal neu Ausgelesen wird.