Hallo zusammen,
Ich möchte in einer EXE auf einem Label ein Bild aus dem Internet zeigen. Hierbei hat mir der Link von UEZ recht gut weiter geholfen.
Da ich bereits einen Counter im Script habe, welche von 20 bis 1 runter zählt und dann wieder bei 20 anfängt, dachte ich, das hier eine geeignete Stelle für die Aktualisierung ist. Leider wird das Bild immer nur beim Starten der EXE vom Internet gezogen und danach nicht mehr aktualisiert.
Hier wird das Bild vom Server geholt
[autoit]_GDIPlus_Startup()
Global $STM_SETIMAGE = 0x0172
Global $hBmp = Load_BMP_From_Mem(InetRead("http://my.fqdn.tl/mypic.jpg"), True) ;to load an image from the net
AdlibRegister("CountDown", 1000)
[/autoit]Hier wird das Bild das erste mal eingefügt
[autoit]$foto = GUICtrlCreatePic("", $varBilderMitte - 100, $varGUIWindowHeight - 200, $iWidth, $iHeight, 0x0200, 0x00000001)
_WinAPI_DeleteObject(GUICtrlSendMsg($foto, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp))
GUISetState()
und hier die Funktion "Countdown"
[autoit]Func CountDown()
Static $iRest = 20
$iRest -= 1
If $iRest = -1 Then $iRest = 20; Counter wird wieder auf 20 gesetzt
If $iRest = 20 Then _IEAction($IE, "refresh"); papacontrol wird refreshed
If $iRest = 10 Then $hBmp = Load_BMP_From_Mem(InetRead("http://papacontrol.hasenmueller.de/mypapa.jpg"), True) ; wenn der Counter auf 10 ist, soll das Bild nochmals aus dem Internet in den Speicher geladen werden (hoffe ich
If $iRest = 1 Then _WinAPI_DeleteObject(GUICtrlSendMsg($foto, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp)); wenn der Counter auf 1 ist, "sollte" das Bild erneuert werden, macht es aber nicht
;~ If $iRest = 15 Then GUICtrlSetImage($foto, $hBmp)
;~ If $iRest = 20 Then GUISetState(@SW_SHOW)
GUICtrlSetData($Label01, "In " & $iRest & " Sekunden wird die Seite automatisch neu geladen")
GUISetState()
EndFunc ;==>CountDown
Ich habe hier vermutlich auch ein Verständnisproblem, da ja viel Code "nur geklaut" ist und man daher nicht unbedient alles genau versteht.
Würde mich sehr über ein paar Tips freuen.
Gruss Hassan