bild aus dem internet in ein gui

  • hi hat jemand ne idee wie man ein bild aus dem internet z.b eins von irgendeinem user hier in einem gui darstellen kann ohne _IE... und ohne , dass es auf dem rechner gespeichert wird?? ;)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

    Einmal editiert, zuletzt von retrokid (15. Januar 2010 um 13:41)

  • hi hat jemand ne idee wie man ein bild aus dem internet z.b eins von irgendeinem user hier in einem gui darstellen kann ohne _IE... und ohne , dass es auf dem rechner gespeichert wird?? ;)


    ^^ hoff mal du meinst das

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $GUI = GuiCreate("", 496, 472,(@DesktopWidth-496)/2, (@DesktopHeight-472)/2)

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

    $B_oIE1 = ObjCreate("Shell.Explorer.2")
    $YTwindow = GUICtrlCreateObj($B_oIE1, 20, 140, 460, 220)
    $B_oIE1.navigate ('http://www.google.at/intl/de_at/images/logo.gif')

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

    GuiSetState()

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "close")

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

    ; Functions
    While 1
    Sleep(100)
    WEnd

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

    Func close()
    Exit
    EndFunc

    [/autoit]
  • ne sorry hab ja gesagt ohne _IE das von dir hätte ich auch selber hinbekommen aber trotzdem danke dass du es versucht hast ;)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • habe das hier mal auf die schnelle gebaut


    hoffentlich isses sowas was du suchst

    [autoit]


    #include <File.au3>
    Func GetInetPicTemp($hBitmap, $sPath)
    Local $aRet, $TempName
    $FileExtension = StringSplit($sPath, ".")
    $FileExtension = $FileExtension[UBound($FileExtension) - 1]
    $TempName = _TempFile(@TempDir, "~", $FileExtension)
    $aRet = InetGet($sPath, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    $aRet = GUICtrlSetImage($hBitmap, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    Return 1
    EndFunc ;==>GetInetPicTemp

    [/autoit]
  • dafür muss i-netexplorer installiert sein habt ihr nicht ne lösung wo nicht jeder erst internetexplorer installieren muss

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • habs gerade probiert es funzt aber unterstützt halt keine png´s

    [autoit]


    #include <File.au3>
    Func GetInetPicTemp($hBitmap, $sPath)
    Local $aRet, $TempName
    $FileExtension = StringSplit($sPath, ".")
    $FileExtension = $FileExtension[UBound($FileExtension) - 1]
    $TempName = _TempFile(@TempDir, "~", $FileExtension)
    $aRet = InetGet($sPath, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    $aRet = GUICtrlSetImage($hBitmap, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    Return 1
    EndFunc ;==>GetInetPicTemp

    [/autoit]

    und hier ein bsp


    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Pic1 = GUICtrlCreatePic("", -1,-1, 337, 233)

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

    GetInetPicTemp($Pic1,"http://www.autoit.de/wcf/images/avatars/avatar-824.gif")

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

    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

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

    Func GetInetPicTemp($hBitmap, $sPath)
    Local $aRet, $TempName
    $FileExtension = StringSplit($sPath, ".")
    $FileExtension = $FileExtension[UBound($FileExtension) - 1]
    $TempName = _TempFile(@TempDir, "~", $FileExtension)
    $aRet = InetGet($sPath, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    $aRet = GUICtrlSetImage($hBitmap, $TempName)
    If Not $aRet Then SetError(-1, 0, -1)
    Return 1
    EndFunc ;==>GetInetPicTemp

    [/autoit]
  • ja ist jetzt egal denen ich das programm geben werde die haben eh ie also von daher
    [gelöst]

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • hallo bin neu hier :)
    habe mir mal die funktion von Sprenger120 angeschaut
    muss sagen is ne nette funktion :)
    hab mir dann gedacht ich setz mich mal ran und
    schreib sie so um das man damit jetz auch png´s anzeigen kann
    hier die funktion:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <File.au3>
    #include <GDIPlus.au3>

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

    Func _InetGetPicTemp($hBitmap, $sPath)
    Local $aRet, $TempFileName, $hImage, $sCLSID, $tData, $tParams
    $FileName = StringSplit($sPath, "/")
    $FileName = $FileName[UBound($FileName) - 1]
    $TempFileName = _TempFile(@TempDir, "", $FileName)
    $aRet = InetGet($sPath, $TempFileName, 1)
    _GDIPlus_Startup ()
    $hImage = _GDIPlus_ImageLoadFromFile ($TempFileName)
    $sCLSID = _GDIPlus_EncodersGetCLSID ("jpg")
    $tData = DllStructCreate("int Data")
    DllStructSetData($tData, "Data", $GDIP_EVTTRANSFORMROTATE90)
    $tParams = _GDIPlus_ParamInit (1)
    _GDIPlus_ParamAdd ($tParams, $GDIP_EPGTRANSFORMATION, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Data"))
    $TempFileName = StringTrimRight($TempFileName, 3)&"jpg"
    _GDIPlus_ImageSaveToFileEx ($hImage, $TempFileName, $sCLSID, DllStructGetPtr($tParams))
    _GDIPlus_ShutDown ()
    If Not $aRet Then SetError(-1, 0, -1)
    $aRet = GUICtrlSetImage($hBitmap, $TempFileName)
    If Not $aRet Then SetError(-1, 0, -1)
    Return 1
    EndFunc

    [/autoit]


    hier mal ein beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <INetPlus.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Pic1 = GUICtrlCreatePic("", -1,-1, 337, 233)

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

    _InetGetPicTemp($Pic1,"http://web1.www3.kaliber5.de/uploads/tx_k5ligamanager/100px-VfL_Wolfsburg_Logo_svg.png")

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

    GUISetState(@SW_SHOW)

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

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

    [/autoit]

    viel spass damit :P

  • Diese Funktion läd das Bild über TCP herunter und ohne es als Datei abzuspeichern wird es in den Speicher geschoben!

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <Memory.au3>
    #Include <WindowsConstants.au3>
    #include <String.au3>
    #NoTrayIcon
    _GDIPlus_Startup()

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

    $hwnd = GUICreate("Display image from memory", 600,100,-1,-1,-1, bitor($WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
    GUISetState()
    WinSetOnTop($hwnd,"",1)
    ;Load Image
    $hImage = _GDIPlus_ImageLoadFromInet( "http://www.autoit.de", "/wcf/images/future/autoit_logo_gtaspider.png")
    ;Show Image
    SetBitmap($hwnd, $hImage, 255)
    ;Exit:
    for $i = 255 to 0 step -1
    SetBitmap($hwnd, $hImage, $i)
    Sleep(20)
    Next
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Exit

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

    ;-----------------------------------------------------------------------------------------------------------------
    ; Author: Faweyr
    ; Thanks: Upload Function: @night@ ( http://www.autoitbot.de )
    ; Binary to Image: UEZ ( http://www.autoit.de )
    ; Function: _GDIPlus_LoadWebImage( $sHost, $sSeite)
    ; Parameter: $sHost = Host der Seite (zb. http://www.autoit.de)
    ; $sSeite = Der Link zum Bild ohne den Hostnamen (zb. /wcf/images/future/autoit_logo_gtaspider.png )
    ; Note: Läd ein Bild aus dem Inet und gibt das Handle (GDI+) zurück ohne es als Datei abzuspeichern
    ; Funktioniert auch bei Passwort geschützte Bereiche, da es über TCP funktioniert
    ; Return: Fehler: 0
    ; Erfolg: Handle of Image
    ; Error: 0 = Succes
    ; 1 = Can´t connected
    ; Example: _GDIPlus_ImageLoadFromInet( "http://www.autoit.de", "/wcf/images/future/autoit_logo_gtaspider.png")
    ;-----------------------------------------------------------------------------------------------------------------
    Func _GDIPlus_ImageLoadFromInet( $sHost, $sSeite)
    If StringInStr($sHost, "http://") Then $sHost = StringReplace($sHost, "http://", "")
    If StringRegExp($sHost, "\.../") Then $sHost = Stringreplace($sHost, "/", "")
    TCPStartup()
    $sIp = TCPNameToIP($sHost)

    $sData = "GET "&$sSeite&" HTTP/1.1" & @crlf & _
    "Host: " & $sHost & @crlf & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)" & @crlf & _
    "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @crlf & _
    "Accept-Language:de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @crlf & _
    "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @crlf & _
    "Connection: close" & @crlf & @CRLF

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

    $sSocket = TCPConnect($sIp, 80)
    TCPSend($sSocket, $sData)
    If @error Then return Seterror(1)
    Local $sRecv_header = "", $sRecv_binary = "0x"
    Do
    $sRecv_header = TCPRecv($sSocket, 1)
    until $sRecv_header <> ""
    Do
    $sRecv_header &= TCPRecv($sSocket, 1)
    until StringInStr($sRecv_header, @crlf & @crlf)
    $aArray_help = _stringbetween($sRecv_header, 'Content-Length: ', @crlf)
    If NOT isarray($aArray_help) Then
    TCPCloseSocket($socket)
    TCPShutdown()
    return Seterror(1)
    EndIf
    $iBytes = $aArray_help[0]
    Do
    $sRecv_binary &= StringTrimLeft(TCPRecv($sSocket, 1024, 1),2)
    Until BinaryLen( Binary($sRecv_binary) ) >= $iBytes
    TCPCloseSocket($sSocket)
    TCPShutdown()
    $memBitmap = Binary($sRecv_binary)
    $len = BinaryLen($memBitmap)
    $hData = _MemGlobalAlloc($len, 0x0002)
    $pData = _MemGlobalLock($hData)
    $tMem = DllStructCreate("byte[" & $len & "]", $pData)
    DllStructSetData($tMem, 1, $memBitmap)
    _MemGlobalUnlock($hData)
    $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "hwnd", $pData, "int", True, "ptr*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $aResult[3], "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[2]
    EndFunc

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

    Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize )
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth ($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha" , $iOpacity )
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC (0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC ($hMemDC)
    EndFunc

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

    Viel Spaß :)