VideoPoster

  • Hallo zusammen,

    jetzt hab ich mein kleines Programm endlich fertig und will euch dank der tatkräftigen Hilfe auch am Ergebnis teilhaben lassen. Dabei handelt es sich um ein Programm, das besonders für Video-Foren geplant ist. Man muss nur das Video per DragnDrop reinziehen und den Downloadlink angeben und schon, kann ein Forums-gerechter Code ausgegeben werden.

    [Blockierte Grafik: http://i36.tinypic.com/2dcigkl.jpg]
    Download (2,87 MB) (inkl. Source und Co.)


    Für nähere Details könnt ihr ja noch den Code durchstöbern:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Video.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseAnsi=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------
    ;AutoIt Version: 3.2.12.1
    ;Author: Taek
    ;Script Function: VideoPoster
    #ce ----------------------------------------------------------------------------
    #include <Array.au3>
    #include <GUIConstants.au3>
    #include <IE.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>

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

    GUICreate("Videoposter", 500, 300, Default, Default, -1, $WS_EX_ACCEPTFILES)
    GUICtrlCreateLabel("File Input:", 5, 0, 50, 15)
    $input = GUICtrlCreateInput("", 5, 15, 490, 20, $ES_READONLY)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUICtrlCreateLabel("Download Link Input:", 5, 35, 120, 15)
    $dl_input = GUICtrlCreateInput("", 5, 50, 490, 20)
    $button = GUICtrlCreateButton("Create Post", 5, 72, 120, 22)
    $statuslabel = GUICtrlCreateLabel("", 260, 73, 200, 22)
    GUICtrlCreateLabel("Post Output:", 5, 95, 80, 18)
    $output = GUICtrlCreateInput("", 5, 110, 490, 185, $ES_MULTILINE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    _Create_Post(GUICtrlRead($input), GUICtrlRead($dl_input))
    EndSwitch
    WEnd

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

    Func _Create_Post($path, $url)
    If $path = "" Then
    MsgBox(64, "Error", "No File entered.")
    Else
    If $url = "" Then
    MsgBox(64, "Error", "No Download Link entered.")
    Else
    GUICtrlSetData($statuslabel, "Creating Pics...")
    $split = StringSplit($path, "\")
    Local $directory
    For $z = 1 To UBound($split) - 2
    $directory = $directory & $split[$z] & "\"
    Next
    $filename = $split[UBound($split) - 1]
    ;Gspot starten
    $gspot = @ScriptDir & "\gspot\GSpot.exe"
    ShellExecute($gspot, '"' & $path & '"')
    Sleep(3000)
    Do
    $vid_length_read1 = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:7]")
    Sleep(500)
    $vid_length_read2 = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:7]")
    Until StringCompare($vid_length_read1, $vid_length_read2) = 0
    ;Videoname
    $video_name = StringTrimRight($filename, 4)
    ;Videogröße
    $vid_size_read = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:2]")
    $splitsize1 = StringSplit($vid_size_read, "/")
    $splitsize2 = $splitsize1[UBound($splitsize1) - 1]
    $splitsize3 = StringReplace($splitsize2, ",", "")
    $splitsize4 = StringReplace($splitsize3, " bytes)", "")
    Global $video_size = Round($splitsize4 / 1024 / 1024, 1) & " MB"
    ;Videolänge
    $vid_length_read = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:7]")
    $split_1st = StringSplit($vid_length_read, '.')
    $split_2nd = StringSplit($split_1st[1], ":")
    Select
    Case UBound($split_2nd) - 1 = 3
    $stunden = $split_2nd[1]
    If StringLen($stunden) = 1 Then
    $stunden = "0" & $stunden
    EndIf
    $minuten = $split_2nd[2]
    If StringLen($minuten) = 1 Then
    $minuten = "0" & $minuten
    EndIf
    $sekunden = $split_2nd[3]
    If StringLen($sekunden) = 1 Then
    $sekunden = "0" & $sekunden
    EndIf
    Case UBound($split_2nd) - 1 = 2
    $stunden = "00"
    $minuten = $split_2nd[1]
    If StringLen($minuten) = 1 Then
    $minuten = "0" & $minuten
    EndIf
    $sekunden = $split_2nd[2]
    If StringLen($sekunden) = 1 Then
    $sekunden = "0" & $sekunden
    EndIf
    Case UBound($split_2nd) - 1 = 1
    $stunden = "00"
    $minuten = "00"
    $sekunden = $split_2nd[1]
    If StringLen($sekunden) = 1 Then
    $sekunden = "0" & $sekunden
    EndIf
    EndSelect
    Global $video_length = $stunden & ":" & $minuten & ":" & $sekunden
    $video_sekunden = ($stunden * 60 + $minuten) * 60 + $sekunden
    ;Videocodec
    Global $video_codec = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:4]")
    ;Video-Abmessungen
    Global $vid_resolution = ControlGetText("GSpot v2.70a", "", "[CLASS:Edit; INSTANCE:17]")
    ;Gspot beenden
    ProcessClose("GSpot.exe")
    ;Screenshot-Anzahl berechnen
    Select
    Case $video_sekunden <= 300
    $screen_zeilen = 3
    Case $video_sekunden > 300 And $video_sekunden < 1800
    $screen_zeilen = 8
    Case $video_sekunden >= 1800
    $screen_zeilen = 13
    EndSelect
    ;mtn starten
    $mtn = @ScriptDir & "\mtn\mtn.exe"
    $parameter_preview_tn = " -b 1 -c 3 -D 12 -F 000000:10 -g 5 -i -j 90 -k FFFFFF -n -o _preview_tn.jpg -O " & '"' & $directory & "\" & '"' & " -P -r " & $screen_zeilen & " -T " & '"' & $video_name & '"' & " -w 1024 " & '"' & $path & '"'
    ShellExecute($mtn, $parameter_preview_tn, @ScriptDir & "\mtn\", "", @SW_HIDE)
    $parameter_titlepic = " -b 0,80 -c 2 -D 12 -g 2 -i -j 90 -k 666666 -n -o _preview_title.jpg -O " & '"' & $directory & "\" & '"' & " -P -r 1 -t -w 600 " & '"' & $path & '"'
    ShellExecute($mtn, $parameter_titlepic, @ScriptDir & "\mtn\", "", @SW_HIDE)
    GUICtrlSetData($statuslabel, "Uploading Pictures...")
    $oIE = _IECreate("http://www.imagevenue.com", 0, 1, 1, 0)
    WinMove("ImageVenue.com", "", 0, 0, 800, 1150)
    ;Sleep(1000)
    ControlClick("ImageVenue.com", "", "", "left", 1, 109, 293)
    Send($directory & $video_name & "_preview_title.jpg")
    ControlClick("ImageVenue.com", "", "", "left", 1, 109, 316)
    Send($directory & $video_name & "_preview_tn.jpg")
    ControlClick("ImageVenue.com", "", "[CLASS:Internet Explorer_TridentCmboBx; INSTANCE:1]", "left", 1, 106, 10)
    ControlClick("ImageVenue.com", "", "[CLASS:ComboLBox; INSTANCE:1]", "left", 1, 90, 25)
    Send("a{ENTER}{TAB}{ENTER}")
    _IELoadWait($oIE)
    $GetLink1 = _IELinkGetCollection($oIE, 12)
    $Link1 = $GetLink1.href
    $GetLink2 = _IEImgGetCollection($oIE, 1)
    $Link2 = $GetLink2.src
    _IEQuit($oIE)
    GUICtrlSetData($output, "" & $video_name & "" & @CRLF & _
    "" & @CRLF & _
    "Filename: " & $filename & @CRLF & _
    "Filesize: " & $video_size & @CRLF & _
    "Codec: " & $video_codec & @CRLF & _
    "Duration: " & $video_length & @CRLF & _
    "Resolution: " & $vid_resolution & @CRLF & _
    "~ Download ~")
    GUICtrlSetData($statuslabel, "Post: Done.")
    EndIf
    EndIf
    EndFunc ;==>_Create_Pics

    [/autoit]

    2 Mal editiert, zuletzt von Taek (20. Oktober 2008 um 16:31)

  • Update 2008-10-20:
    Grundlegend optimiert und auf 1 Video pro Klick reduziert. Und noch hübscheres Icon dazugepackt. :D