HELP!!! seite im GUI alle 5 sec aktualisieren aber wie?!

  • moin freaks,

    komm hier grad nicht mehr weiter.

    Spoiler anzeigen

    #include <Inet.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

    Global $source1, $source2, $source3, $source4, $daten_label

    _IEErrorHandlerRegister ()

    $oIE = _IECreateEmbedded ()

    $hGUI = GUICreate("Genta Inc. Copyright© by Phosgen", 400, 400)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 350, 360)
    $daten_label = GUICtrlCreateLabel("", 10, 370, 600, 30)
    GUISetState()
    GUISetBkColor(0xE0FFFF)
    _IENavigate ($oIE, "http://de.advfn.com/p.php?pid=staticchart&s=NB%5EGNTA&p=0&t=39&vol=1")

    AdlibEnable("PicandData",10000)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd

    Func PicandData()
    $source1 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px 5px 3px">(.*?)</td>', 3)
    $source2 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px">(.*?)</td>', 3)
    $source3 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 3px 5px 0px;" align="right">(.*?)</td>', 3)
    $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #d4eed4" align="right">(.*?)</td>', 3)
    If @error Then
    $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #eed4d4" align="right">(.*?)</td>', 3)
    EndIf
    GUICtrlSetData($daten_label, "Letzter Kurs: " & StringReplace($source1[0], "nbsp;", " ") & " Vortag: " & StringReplace($source2[0], "nbsp;", " ") & " Umsatz: " & StringReplace($source3[0], "nbsp;", " ") & " Veränd.: " & $source4[0])
    EndFunc ;==>PicData

    will das so haben das die seite die mir im GUI angezeit wird alle 5 sec neu läd. bekomms aber irgendwie nicht hin ohne das bei mir dann alles abkackt.

    kann mir da jemand kurz helfen?!

    danke

  • Hallo flobby, du könntest dein Skript in AutoIT-Tags einschliessen, aber ich schau trotzdem einmal nach.

    Edit1: versuchs mal so:

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    Global $source1, $source2, $source3, $source4, $daten_label, $loading, $lastUpdate

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()

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

    $hGUI = GUICreate("Genta Inc. NoCopyright© by Phosgen", 400, 400)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 350, 360)
    $daten_label = GUICtrlCreateLabel("", 10, 370, 600, 30)
    GUISetState()
    GUISetBkColor(0xE0FFFF)
    _IENavigate ($oIE, "http://de.advfn.com/p.php?pid=staticchart&s=NB%5EGNTA&p=0&t=39&vol=1")

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

    ;AdlibEnable("PicandData",10000)
    $lastUpdate=TimerInit()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUICtrlDelete($GUIActiveX)
    Exit
    EndSwitch
    $dif =TimerDiff($lastUpdate)
    if $dif > 5000 Then
    PicandData()
    $lastUpdate = TimerInit()
    EndIf
    Sleep(250)
    WEnd

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

    Func PicandData()
    if $loading then Return
    $loading = True
    $source1 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px 5px 3px">(.*?)</td>', 3)
    $source2 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px">(.*?)</td>', 3)
    $source3 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 3px 5px 0px;" align="right">(.*?)</td>', 3)
    $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #d4eed4" align="right">(.*?)</td>', 3)
    If @error Then $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #eed4d4" align="right">(.*?)</td>', 3)
    GUICtrlSetData($daten_label, "Letzter Kurs: " & StringReplace($source1[0], "nbsp;", " ") & " Vortag: " & StringReplace($source2[0], "nbsp;", " ") & " Umsatz: " & StringReplace($source3[0], "nbsp;", " ") & " Veränd.: " & $source4[0])
    $loading = False
    EndFunc ;==>PicData

    [/autoit]

    läßt sich aber noch nicht abbrechen, dauert nur etwas länger. Falls du oder jemand anders dies lösen bitte Thema als gelöst markieren

    mfg (Auto)Bert

    2 Mal editiert, zuletzt von AutoBert (18. Mai 2009 um 22:25)

  • will das so haben das die seite die mir im GUI angezeit wird alle 5 sec neu läd. bekomms aber irgendwie nicht hin ohne das bei mir dann alles abkackt.

    Präzisiere mal "abkackt" , bei mir funktioniert das Skript ohne Änderung wie gewünscht (lädt alle 10s neu) 8)

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

  • Präzisiere mal "abkackt" , bei mir funktioniert das Skript ohne Änderung wie gewünscht (lädt alle 10s neu) 8)

    so wie es im moment ist läuft es bei mir auch ohne fehler. nur wenn ich die seite alle 5 sec neu laden will spinnt bei mir alles.
    naja wenn ich ein normales adlibenable einbau läd der sich tot und spinnt rum. zb kann ich das script dann nicht mehr schließen usw.


    die zahlen unten werden ja ganz normal alle 1o sec neu geladen nur die seite nicht da die grafik nicht unter der funktion
    AdlibEnable("PicandData",10000)
    mit eingebunden ist.

    was kann ich machen das die seite auch alle 5-10sec neu geladen wird?

  • erst mal danke für die schnelle hilfe. kann es jetzt leider nicht mehr testen da die börse schon zu hat. muss ja nix mehr daran verändern oder?

  • Hallo flobby,

    doch Grafik aktualisieren, z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    Global $source1, $source2, $source3, $source4, $daten_label, $loading, $lastUpdate

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()

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

    $hGUI = GUICreate("Genta Inc. NoCopyright© by Phosgen", 400, 400)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 350, 360)
    $daten_label = GUICtrlCreateLabel("", 10, 370, 600, 30)
    GUISetState()
    GUISetBkColor(0xE0FFFF)
    _IENavigate ($oIE, "http://de.advfn.com/p.php?pid=staticchart&s=NB%5EGNTA&p=0&t=39&vol=1")
    PicandData()

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

    ;AdlibEnable("PicandData",10000)
    $lastUpdate=TimerInit()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUICtrlDelete($GUIActiveX)
    Exit
    EndSwitch
    $dif =TimerDiff($lastUpdate)
    if $dif > 500 Then
    PicandData()
    $lastUpdate = TimerInit()
    EndIf
    Sleep(5)
    WEnd

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

    Func PicandData()
    if $loading then Return
    $loading = True
    $source1 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px 5px 3px">(.*?)</td>', 3)
    $source2 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px">(.*?)</td>', 3)
    $source3 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 3px 5px 0px;" align="right">(.*?)</td>', 3)
    $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #d4eed4" align="right">(.*?)</td>', 3)
    If @error Then $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #eed4d4" align="right">(.*?)</td>', 3)
    GUICtrlSetData($daten_label, "Letzter Kurs: " & StringReplace($source1[0], "nbsp;", " ") & " Vortag: " & StringReplace($source2[0], "nbsp;", " ") & " Umsatz: " & StringReplace($source3[0], "nbsp;", " ") & " Veränd.: " & $source4[0])
    $dif = TimerDiff($lastUpdate)
    if $dif > 600000 then _IENavigate ($oIE, "http://de.advfn.com/p.php?pid=staticchart&s=NB%5EGNTA&p=0&t=39&vol=1")
    $loading = False
    EndFunc ;==>PicData

    [/autoit]

    im ersten Script gings mir nur darum dir zu zeigen, dass es auch ohne AdLib geht. Jetzt wird alle 1/2 Sekunde das Label geändert, und alle 10 Minuten die Graphik, die Werte kannst du aber noch austesten (Wobei bei der kleinen Graphik, man den Unterschied voher warscheins eh nicht bemerkt,

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (18. Mai 2009 um 23:23)

  • ok vielen dank erst mal. ist es auch möglich die grafik oder besser gesagt den die seite größer anzeigen zu lassen zb 600x600 da es schwer ist auf der kleinen grafik zu erkennen wenn sich da was tut?

  • Hallo flobby,

    Zitat

    ok vielen dank erst mal. ist es auch möglich die grafik oder besser gesagt den die seite größer anzeigen zu lassen zb 600x600 da es schwer ist auf der kleinen grafik zu erkennen wenn sich da was tut?

    Natürlich ist das möglich, schau dir dazu die Hilfe an, Stichwörter GuiCreate und GuiCreateObj, danach kannst du ds selber in der von dir gewünschten Größe erstellen,

    Edit: aber wichtiger erscheint mir, das du dir COPYRIGHT UND LIMITIERTE REPRODUKTION durchliest, ebenso die Geschäftsbedingungen von ADVFN,

    mfg (Auto)Bert

    2 Mal editiert, zuletzt von AutoBert (19. Mai 2009 um 00:03)

  • Hallo flobby,

    Natürlich ist das möglich, schau dir dazu die Hilfe an, Stichwörter GuiCreate und GuiCreateObj, danach kannst du ds selber in der von dir gewünschten Größe erstellen,

    mfg (Auto)Bert

    hehe danke für den tip das war mir aber klar das man das machen kann. ich meine nur das was drin steckt ;) also die seite


  • Edit: aber wichtiger erscheint mir, das du dir COPYRIGHT UND LIMITIERTE REPRODUKTION durchliest, ebenso die Geschäftsbedingungen von ADVFN,


    also ganz ehrlich ob ich jetzt den ganzen tag auf F5 dück oder mir das so mach kommt doch aufs gleich raus oder meint ihr nicht? meiner meinung nach ist das nicht verboten was ich mache. ist wer anderer meinung?

  • Hallo flobby,

    ich habe dabei hauptsächlich an diesen Abschnitt gedacht:

    Zitat

    Lizenz zur beschränkten Vervielfältigung:

    Der User darf Teile der hier dargestellten Informationen Dritten für deren persönlichen Gebrauch zugänglich machen unter der Voraussetzung, dass nur die durch ADVFN explizit, bezeichneten Daten zur Verfügung gestellt werden. Dabei müssen diese Bestimmungen eingehalten werden:
    1. Der User muss eindeutig klarstellen, dass die Daten von der ADVFN Webseite stammen UND
    2. den Dritten wird eindeutig klargestellt, dass diese Allgemeinen Geschäftsbedingungen auch für jeden Dritten gelten, der diese Daten anfordert. Diese Lizenz zur beschränkten Vervielfältigung genehmigt weder die Veränderung der Daten noch das Restrukturieren der Präsentationsform. Weiterhin ist es nicht erlaubt Teile der ADVFN Webseite für den kommerziellen Gebrauch zu nutzen oder zu kopieren.
    Kein Teil der ADVFN Webseite darf durch eine andere Webseite oder ein anderes elektronisches Medium vervielfältigt, gespeichert und/oder dargestellt werden.

    sprich du musst bei einer Weitergabe auf jedenfall die Datenquelle nennen und darauf hinweisen, dass für den Benutzer auch die Geschäftsbedingungen der ADVN nennen, ob eine Wetergabe überhaupt zulässich ist kann ich nicht beurteillen. Ebenso wenig ob deine Nutzung gegen die Geschäftsbedingungen de ADVN verstößt.

    mfg (Auto)Bert

  • Hallo flobby,

    ich habe dabei hauptsächlich an diesen Abschnitt gedacht:

    sprich du musst bei einer Weitergabe auf jedenfall die Datenquelle nennen und darauf hinweisen, dass für den Benutzer auch die Geschäftsbedingungen der ADVN nennen, ob eine Wetergabe überhaupt zulässich ist kann ich nicht beurteillen. Ebenso wenig ob deine Nutzung gegen die Geschäftsbedingungen de ADVN verstößt.

    mfg (Auto)Bert

    also das toll ist lediglich zu meiner eigenen benutzung gedacht. daher denke ich das es halb so wild ist da ich jau meinen zuganz jeden monat auch bezahle. was ich dann damit mache ist denke ich meine sache und somit kanns denen ja egal sein. aber danke das du mich darauf aufmerksam gemacht hast.

    es läuft soweit ganz gut.

    nur hab würde ich noch gerne ein kleines icon oben rechts in die ecke einbinden das es jedesmal kurz aufblinkt wenn die seite aktualisiert wird. kann mir da jemand helfen?

    habe es schon versucht aber leider nicht hinbekommen

  • Hallo flobby,

    hier eine neuere Version mit blinkendem Punkt:

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    Global $source1, $source2, $source3, $source4, $daten_label, $loading, $lastUpdate

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()

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

    $hGUI = GUICreate("Genta Inc. NoCopyright© by Phosgen", 400, 415)
    $hPiclbl = GUICtrlCreateLabel("",5,5,16,16)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 25, 350, 350)
    $daten_label = GUICtrlCreateLabel("", 10, 370, 600, 30)
    GUISetState()
    GUISetBkColor(0xE0FFFF)

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

    ;AdlibEnable("PicandData",10000)
    $lastUpdateLabel=TimerInit()-60000
    $lastUpdateIE = TimerInit()
    PicandData()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUICtrlDelete($GUIActiveX)
    Exit
    EndSwitch
    $dif =TimerDiff($lastUpdate)
    if $dif > 500 Then
    PicandData()
    $lastUpdate = TimerInit()
    GUICtrlSetBkColor($hPiclbl,0xE0FFFF)
    EndIf
    Sleep(5)
    WEnd

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

    Func PicandData()
    if $loading then Return
    $loading = True
    #cs
    $source1 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px 5px 3px">(.*?)</td>', 3)
    $source2 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 0px">(.*?)</td>', 3)
    $source3 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 5px 3px 5px 0px;" align="right">(.*?)</td>', 3)
    $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #d4eed4" align="right">(.*?)</td>', 3)
    If @error Then $source4 = StringRegExp(_INetGetSource("http://www.ariva.de/quote/profile.m?secu=100258495&kx=s"), '<td class="arrow0" style="font-size: 20px; padding: 4px 3px 4px 0px; border-top: 1px solid white; border-bottom: 1px solid #eee; background-color: #eed4d4" align="right">(.*?)</td>', 3)
    GUICtrlSetData($daten_label, "Letzter Kurs: " & StringReplace($source1[0], "nbsp;", " ") & " Vortag: " & StringReplace($source2[0], "nbsp;", " ") & " Umsatz: " & StringReplace($source3[0], "nbsp;", " ") & " Veränd.: " & $source4[0])
    #ce
    $dif = TimerDiff($lastUpdateIE)
    if $dif > 5000 then
    GUICtrlSetBkColor($hPiclbl,0x00ff0f)
    ;_IENavigate ($oIE, "http://de.advfn.com/p.php?pid=staticchart&s=NB%5EGNTA&p=0&t=39&vol=1")
    $lastUpdateIE = TimerInit()
    sleep(1000) ;wieder entfernen
    EndIf
    $loading = False
    EndFunc ;==>PicData

    [/autoit]


    ps. du könntest ruhig einmal selbst die Hilfe bemühen,

    mfg (Auto)Bert