Bild von Hp in ner MsgBox anzeigen?

  • Hi bisher wurde mir in der Shoutbox zwar immer super geholfen, aber das wird glaube ich zu Umfangreich.

    Also ich habe folgenden Code:

    [autoit]

    Func Getbild (Const $URL)
    $IEobj = _IECreate($URL&"?p=Userupload")
    $Seite = _IEBodyReadHTML($IEobj);
    $Seite = StringTrimLeft($Seite,StringInStr($Seite, 'img src="/secure/')+stringlen('<img src="')-1)
    $Seite = StringTrimRight($Seite,StringLen($Seite)-StringInStr($Seite, '"')+1);
    MsgBox(0, "der Link ist:",$URL&$Seite, 0);
    EndFunc

    [/autoit]


    In diesem Fall geht es um Folgende Seite: http://www.sceneload.to/?p=Userupload
    ich will jetzt das Bild (den Sicherheitscode) runterladen und dann in ner Msgbox oder Inputbox anzeigen, nur kommt statt dem Link zum bild irgend nen Mist raus, und ich weiß nicht warum, ich bin also noch gar nicht so weit, das Bild anzuzeigen, das wollte ich dann nämlich runterladen und dann mal schauen :D arbeite noch nicht so lange mit AutoIT
    Gruß Ryu 1991

    Einmal editiert, zuletzt von Ryu 1991 (2. April 2008 um 14:11)

  • MsgBox und bild geht soweit ich weiß nicht.

    Mach dir einfach eine GUI á la MsgBox mit GUICrtlCreateInput und GuiCtrlCreateButton und wegen dem Bild GUICtrlCreatePic. Und dann checkst du einfach in einer While Schleife wenn der Button "ok" geclickt wurde wird mit GUICtrlRead den eingegebenen Text im Input und arbeitest dann weiter. (aus der schleife kommst du mit exitloop)

    • Offizieller Beitrag

    Man kann es natürlich umständlich machen :D - aber es gibt doch Funktionen, die dir die Links selektieren.

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    $PicPath = @ScriptDir & '\Secure.gif'
    $url = 'http://www.sceneload.to/?p=Userupload'
    $oIE = _IECreate($url,0,0)
    $oLinks = _IEImgGetCollection($oIE)
    For $Link In $oLinks
    If StringInStr($Link.href, 'http://www.sceneload.to/secure/') Then
    $SecureLink = $Link.href
    ExitLoop
    EndIf
    Next
    InetGet($SecureLink, $PicPath, 1)
    _IEQuit($oIE)
    MsgBox(0, '', 'Fertig')

    [/autoit]


    Alerdings ist diese Website sehr mit Vorsicht zu genießen. Wer versteckte Links anbringt ("Ihr Browser verhindert einen schnellen Downlad. Zur Problembehebung klicken Sie bitte hier." ==> Link auf usenext), ist für mich alles andere als seriös. Ebenso Warez-Links etc.
    Ich hoffe deine Programme laufen in einer Sandbox, wenn du dich da einwählst. Denn akuter Virenbefall ist vorprogrammiert.

  • Dann würd ichs lieber so machen:

    [autoit]


    #include<INet.au3>
    #include<String.au3>
    #include<Array.au3>
    $Source = _INetGetSource('http://www.sceneload.to/?p=Userupload')

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

    $array = _StringBetween($Source, '<TD WIDTH="90"><IMG SRC="', '" ALT="" BORDER="0" WIDTH="90" HEIGHT="30">')
    InetGet("http://www.sceneload.to"&$array[0], "Secure.gif", 1)

    [/autoit]

    Geht schneller

  • ohne schleife? :D

    [autoit]

    #include<INet.au3>
    #include<String.au3>
    #include<Array.au3>
    dim $i = 0
    $Source = _INetGetSource('http://www.sceneload.to/?p=Userupload')

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

    $array = _StringBetween($Source, 'IMG SRC="', '"')
    _ArrayDisplay($array)
    while true
    if $array[$i] = "" then exitloop
    $bild = stringsplit($array[$i],"/")
    InetGet("http://sceneload.to"&$array[$i], $bild[$bild[0]], 1) ;"http://www.sceneload.to"&
    msgbox(0,"a",$bild[$bild[0]])
    $i = $i+1
    wend

    [/autoit]

    nur man mpsste irgendwie das mim error lösen :P auch wenn der bei diesem script egal ist :D

    Einmal editiert, zuletzt von azunai (2. April 2008 um 12:47)

  • Vielen dank für die Antworten, ich habe es auch erst mir stringbetween versucht, aber das hat irgend wie nicht geklappt, das Array das zurück kam war immer leer :D.
    Ich werde alles mal durchtesten.
    Ach ja, dieses Tool soll nur das Formular ausfüllen, und die auf anderen Seiten dieser Art.
    Ich selber habe damit gar nichts zu tun. Eine Frage noch, wenn ich _IESubmit mache, ist das dann das selbe wie nen Druck auf den Button absenden zu simulieren?

    Edit:
    Also alle Methoden mit _INetGetSourcehaben nicht funktioniert, da er dann ne neue seite und nen anderes Bild bekommen hat, als ichs mit _IEDocReadHtml oder so ähnlich versucht habe hat stringbetween nicht mehr funktioniert, aber BugFix' Version ging super, Danke

    Einmal editiert, zuletzt von Ryu 1991 (2. April 2008 um 14:10)