Imgage Uploader v 1.0.0.2

  • Hi Leute!
    ich wollte GtaSpider mal etwas Konkurenz machen :D
    Ne eigentlich hatte ich eher Lust, was mim Internet Explorer zu machen.
    Das kam raus:

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Version=beta
    #AutoIt3Wrapper_icon=icon.ico
    #AutoIt3Wrapper_Res_Comment=Easy image uploading to bildrian.de or imageshack.us
    #AutoIt3Wrapper_Res_Description=Easy image uploading to bildrian.de or imageshack.us
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.2
    #AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2008 qon
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    ;Dont change anything without asking qon [maxmoppel@yahoo.de]

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

    #include "IE.au3"
    #Include <GuiConstants.au3>
    #include <File.au3>
    #include <string.au3>
    Opt("TrayMenuMode",1)

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

    FileInstall("C:\Dokumente und Einstellungen\Maximilian\Desktop\programming\Autoit\ImgageUploader\header1.jpg",@tempdir & "\header1.jpg",1)
    FileInstall("C:\Dokumente und Einstellungen\Maximilian\Desktop\programming\Autoit\ImgageUploader\header2.jpg",@tempdir & "\header2.jpg",1)
    FileInstall("C:\Dokumente und Einstellungen\Maximilian\Desktop\programming\Autoit\ImgageUploader\minimize.bmp",@tempdir & "\minimize.bmp",1)
    FileInstall("C:\Dokumente und Einstellungen\Maximilian\Desktop\programming\Autoit\ImgageUploader\close.bmp",@tempdir & "\close.bmp",1)

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

    ;GUI
    $MainGui = GuiCreate("Image Uploader v 1.0.0.2 © qon",500,320)
    GuiCtrlCreatePic(@tempdir & "\header1.jpg",40,11,170,90)
    GuiCtrlCreatePic(@tempdir & "\header2.jpg",235,11,240,90)

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

    $Label1 = GuiCtrlCreateLabel("Picture #1",15,122,75)
    $Path1 = GuiCtrlCreateInput("",105,120,260,21,$ES_READONLY + $ES_LEFT + $ES_AUTOHSCROLL)
    $Browse1 = GuiCtrlCreateButton("Browse...",382,119,100,20)

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

    $Label2 = GuiCtrlCreateLabel("Picture #2",15,152,75)
    $Path2 = GuiCtrlCreateInput("",105,150,260,21,$ES_READONLY + $ES_LEFT + $ES_AUTOHSCROLL)
    $Browse2 = GuiCtrlCreateButton("Browse...",382,149,100,20)

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

    $Label3 = GuiCtrlCreateLabel("Picture #3",15,182,75)
    $Path3 = GuiCtrlCreateInput("",105,180,260,21,$ES_READONLY + $ES_LEFT + $ES_AUTOHSCROLL)
    $Browse3 = GuiCtrlCreateButton("Browse...",382,179,100,20)

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

    $Label4 = GuiCtrlCreateLabel("Picture #4",15,212,75)
    $Path4 = GuiCtrlCreateInput("",105,210,260,21,$ES_READONLY + $ES_LEFT + $ES_AUTOHSCROLL)
    $Browse4 = GuiCtrlCreateButton("Browse...",382,209,100,20)

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

    $Label5 = GuiCtrlCreateLabel("Picture #5",15,242,75)
    $Path5 = GuiCtrlCreateInput("",105,240,260,21,$ES_READONLY + $ES_LEFT + $ES_AUTOHSCROLL)
    $Browse5 = GuiCtrlCreateButton("Browse...",382,239,100,20)

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

    $StartButton = GuiCtrlCreateButton("Upload",45,280,140,25)

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

    $LabelMirror = GuiCtrlCreateLabel("select mirror",260,285,120)
    $Mirror = GuiCtrlCreateCombo("",330,282)
    GuiCtrlSetData($Mirror,"Bildrian.de (fast)|Imageshack.us","Bildrian.de (fast)")

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

    ;Color/Font
    GuiSetBkColor(0xFFFFFF,$MainGui)
    GuiCtrlSetBkColor($Path1,0xFFFFFF)
    GuiCtrlSetBkColor($Path2,0xFFFFFF)
    GuiCtrlSetBkColor($Path3,0xFFFFFF)
    GuiCtrlSetBkColor($Path4,0xFFFFFF)
    GuiCtrlSetBkColor($Path5,0xFFFFFF)
    GuiCtrlSetFont($Label1,11,800,2)
    GuiCtrlSetFont($Label2,11,800,2)
    GuiCtrlSetFont($Label3,11,800,2)
    GuiCtrlSetFont($Label4,11,800,2)
    GuiCtrlSetFont($Label5,11,800,2)

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

    ;Some Sets
    Global $LastBrowse = @DesktopDir
    Global $Path_s[5]
    Global $Percent = 0

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

    ;PROGGUI
    $ProgGui = GUICreate("",381,70,-1,-1,$WS_POPUP)
    $Progress = GUICtrlCreateProgress(15, 40, 350, 15, $PBS_MARQUEE)
    $Label = GuiCtrlCreateLabel("Contacting host ...",114,10,200)
    $Minimize = GuiCtrlCreatePic(@tempdir & "\minimize.bmp",345,10,10,10)
    $Close = GuiCtrlCreatePic(@tempdir & "\close.bmp",360,10,10,10)
    GuiSetBkColor(0x000000,$ProgGui)
    GuiCtrlSetColor($Progress,0x18DF18)
    GuiCtrlSetColor($Label,0x18DF18)
    GuiCtrlSetFont($Label,11,800,0,"Comic Sans MS")
    GuiRoundCorners($ProgGui, 2, 2, 5, 5)

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

    ;RESULTGUI
    $ResultGui = GuiCreate("Image URL's",520,170)
    $ResultEdit = GuiCtrlCreateEdit("",10,10,500,150,$ES_READONLY)
    GuiSetBkColor(0x000000,$ResultGui)
    GuiCtrlSetColor($ResultEdit,0xDF1818)
    GuiCtrlSetFont($ResultEdit,10,600)

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

    GuiSetState(@SW_SHOW,$MainGui)

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

    ;Loop
    While 1
    Switch GuiGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $StartButton
    _DoUpload()
    Exit
    Case $Browse1
    _SetPath(1)
    Case $Browse2
    _SetPath(2)
    Case $Browse3
    _SetPath(3)
    Case $Browse4
    _SetPath(4)
    Case $Browse5
    _SetPath(5)
    EndSwitch
    WEnd

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

    Func _DoUpload()
    $Path_s[0] = GuiCtrlRead($Path1)
    $Path_s[1] = GuiCtrlRead($Path2)
    $Path_s[2] = GuiCtrlRead($Path3)
    $Path_s[3] = GuiCtrlRead($Path4)
    $Path_s[4] = GuiCtrlRead($Path5)
    $Host = GuiCtrlRead($Mirror)

    $PathGiven = 0
    For $i = 0 to UBound($Path_s)-1
    If $Path_s[$i] <> "" then $PathGiven = 1
    Next
    If $PathGiven = 0 then Return 0

    GuiDelete($MainGui)
    Dim $ResultText

    GuiSetState(@SW_SHOW,$ProgGui)

    AdlibEnable("_ProgBarAdd",25)

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


    Switch $Host
    Case "Bildrian.de (fast)"
    For $i = 0 to UBound($Path_s)-1
    If $Path_s[$i] = "" then ContinueLoop
    $Upload = _UploadBildrian($Path_s[$i],$i)
    Switch $Upload
    Case -3
    Msgbox(48,"Error","Unknown error, maybe bildrian has changed his hompage or your Internet Explorer is not compatible with this script.")
    Case -2
    Msgbox(48,"Error","Could not contact http://bildrian.de, maybe the homepage is temporary not aviable.")
    Case -1
    Msgbox(48,"Error","Could not upload image #" & $i+1 & " to bildrian, maybe invalid image or temporary bug.")
    Case Else
    $ResultText &= "picture #" & $i+1 & ": " & $Upload & @CRLF
    EndSwitch
    Next
    Case "Imageshack.us"
    For $i = 0 to UBound($Path_s)-1
    If $Path_s[$i] = "" then ContinueLoop
    $Upload = _UploadImageShack($Path_s[$i],$i)
    Switch $Upload
    Case -3
    Msgbox(48,"Error","Unknown error, maybe imageshack has changed his hompage or your Internet Explorer is not compatible with this script.")
    Case -2
    Msgbox(48,"Error","Could not contact http://imageshack.us, maybe the homepage is temporary not aviable.")
    Case -1
    Msgbox(48,"Error","Could not upload image #" & $i+1 & " to imageshack, maybe invalid image or temporary bug.")
    Case Else
    $ResultText &= "picture #" & $i+1 & ":" & @CRLF & $Upload & @CRLF
    EndSwitch
    Next
    EndSwitch

    AdlibDisable()
    GuiSetState(@SW_HIDE,$ProgGui)
    If $ResultText <> "" Then
    GuiCtrlSetData($ResultEdit,$ResultText)
    GuiSetState(@SW_SHOW,$ResultGui)
    While 1
    Switch GuiGetMsg($ResultGui)
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    EndIf
    _Restart()
    EndFunc

    Func _SetPath($Button)
    $File = FileOpenDialog("Choose an image",$LastBrowse,"Images (*.jpg;*.jpeg;*.png;*.gif;*.bmp)")
    If @error then Return 0
    If FileExists($File) = 0 then Return 0
    If FileGetSize($File)/1048576 > 1.5 Then
    Msgbox(48,"Size","Your selected image is too big, maximum 1,5 megabites.")
    Return 0
    EndIf
    Dim $szDrive, $szDir, $szFName, $szExt
    $SplitPath = _PathSplit($File, $szDrive, $szDir, $szFName, $szExt)
    IF @error then Return 0
    $LastBrowse = $SplitPath[1] & $SplitPath[2]
    Switch $Button
    Case 1
    GuiCtrlSetData($Path1,$File)
    Case 2
    GuiCtrlSetData($Path2,$File)
    Case 3
    GuiCtrlSetData($Path3,$File)
    Case 4
    GuiCtrlSetData($Path4,$File)
    Case 5
    GuiCtrlSetData($Path5,$File)
    EndSwitch
    EndFunc

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

    Func _UploadImageShack($ImagePath,$ImgNumber)
    GuiCtrlSetData($Label,"Contacting imageshack ...")
    $oIE = _IECreate("http://www.imageshack.us/",0,0)
    If @error then
    _IEQUIT($oIE)
    Return -2
    EndIf
    _IELoadWait($oIE)
    If @error then
    _IEQUIT($oIE)
    Return -2
    EndIf
    GuiCtrlSetData($Label,"uploading picture #" & $ImgNumber+1)
    $oForm = _IEFormGetCollection ( $oIE, 2 )
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $oInputFile = _IEFormElementGetObjByName($oForm, "fileupload")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    _IEAction($oInputFile, "focus")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $hIE = _IEPropertyGet($oIE, "hwnd")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    ControlSend($hIE, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", $ImagePath)
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    _IEFormSubmit($oForm)
    _IELoadWait($oIE)
    $Source = _IEDocReadHTML($oIE)
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $ImgLinks = _StringBetween($Source,'value=>')
    If @error then
    _IEQUIT($oIE)
    Return -1
    EndIf
    $Link = $ImgLinks[0]
    _IEQUIT($oIE)
    Return StringStripWs($Link,3)
    EndFunc

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

    Func _UploadBildrian($ImagePath,$ImgNumber)
    GuiCtrlSetData($Label,"Contacting bildrian ...")
    $oIE = _IECreate("http://www.bildrian.de/content.php",0,0)
    If @error then
    _IEQUIT($oIE)
    Return -2
    EndIf
    _IELoadWait($oIE)
    If @error then
    _IEQUIT($oIE)
    Return -2
    EndIf
    GuiCtrlSetData($Label,"uploading picture #" & $ImgNumber+1)
    $oForm = _IEFormGetCollection ( $oIE, 0 )
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $oInputFile = _IEFormElementGetObjByName($oForm, "datei")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    _IEAction($oInputFile, "focus")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $hIE = _IEPropertyGet($oIE, "hwnd")
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    ControlSend($hIE, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", $ImagePath)
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $oCheckBox = _IEFormElementCheckBoxSelect ($oForm,0,"",1,"ByIndex")
    _IEFormSubmit($oForm)
    _IELoadWait($oIE)
    $Source = _IEDocReadHTML($oIE)
    If @error then
    _IEQUIT($oIE)
    Return -3
    EndIf
    $ImgLinks = _StringBetween($Source,'<DIV class=footer1>Bild-Link: &nbsp;<INPUT style="WIDTH: 300px" value=',' name=link>&nbsp;<INPUT')
    If @error then
    _IEQUIT($oIE)
    Return -1
    EndIf
    $Link = $ImgLinks[0]
    _IEQUIT($oIE)
    Return StringStripWs($Link,3)
    EndFunc

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

    Func _ProgBarAdd()
    GuiCtrlSetData($Progress,$Percent)
    $Percent += 1
    If $Percent > 100 then $Percent = 0
    If GuiGetMsg($ProgGui) = $Minimize Then
    Opt("TrayIconHide",0)
    GuiSetState(@SW_HIDE,$ProgGui)
    EndIf
    If GuiGetMsg($ProgGui) = $Close Then
    Exit
    EndIf
    If TrayGetMsg() = $TRAY_EVENT_PRIMARYDOUBLE Then
    Opt("TrayIconHide",1)
    GuiSetState(@SW_SHOW,$ProgGui)
    EndIf
    EndFunc

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

    Func GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
    $pos = WinGetPos($h_win)
    $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
    If $ret[0] Then
    $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
    If $ret2[0] Then
    Return 1
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    EndFunc

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

    Func _restart()
    If @Compiled = 1 Then
    Run( FileGetShortName(@ScriptFullPath))
    Else
    Run( FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
    EndIf
    Exit
    EndFunc

    [/autoit]

    Es kann bis zu 5 Bildern auf einmal auf Imageshack oder Bildrian laden, Bildrian ist dabei wesentlich schneller.
    Man kann es auch bequem im Hintergrund hochladen lassen.
    Im Anhang auch nochmal die mit dem Wrapper kompilte exe und allen Bildern ;)
    Über Bugs/Feedback wäre ich froh.

    lG qon