1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. name22

Beiträge von name22

  • GUI vor einem Vollbildprogramm (Update)

    • name22
    • 24. Juni 2011 um 08:03

    Um welches Programm handelt es sich denn? Bei einigen Spielen ist es leider so gut wie unmöglich ein Fenster davorzusetzen (zumindest mit AutoIt).

  • GDIPlusVideo - Videos in einer GUI abspielen.

    • name22
    • 23. Juni 2011 um 22:56

    Mit dieser UDF kann man ein Video in einer GUI abspielen lassen. Dafür wird die FFMPEG.exe genutzt, welche sich auf dem PC des Benutzers befinden muss.
    Sobald die entsprechende Funktion aufgerufen wird, werden mithilfe der FFMPEG.exe alle Einzelbilder des Videos extrahiert und temporär abgespeichert.
    Danach werden alle Bilder in den Arbeitsspeicher geladen. Als Nächstes wird eine ChildGUI erzeugt in der das Video abgespielt werden kann.
    Sobald das abgeschlossen wurde kann das Video abgespielt werden.
    Da alle Einzelbilder/Frames des Videos später im Arbeitsspeicher landen, sollte man sich auf kleine Videos beschränken ;).

    Die Vorteile des Ganzen sind, dass man mit geringen GDI+ Kenntnissen und ein paar Zeilen Code die Einzelbilder Des Videos vor dem abspielen bearbeiten kann (Wasserzeichen o.Ä.). Außerdem kann man dank der FFMPEG.exe so ziemlich alle gängigen Videoformate und Codecs verwenden.
    Die Nachteile sind, der große Speicherverbrauch und die Dauer des Ladeprozesses.

    Die UDF und ein kleines Beispiel befinden sich im Anhang. Die FFMPEG.exe könnt ihr hier runterladen (zu groß für einen Dateianhang).

    Dateien

    GDIPlusVideo.au3 9,53 kB – 735 Downloads Example.au3 411 Byte – 686 Downloads
  • Funktion mit beliebig vielen Parametern

    • name22
    • 23. Juni 2011 um 21:32

    Nein, das geht nicht. Du kannst stattdessen ja ein Array verwenden.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 21:16

    @progandy Ich arbeite lieber direkt mit TCP weil ich dann genau weiß was passiert (ich hab das am Anfang so gemacht um den Umgang mit HTTP zu lernen). ^^
    Ansonsten ist progandys Script natürlich einfacher zu verstehen und vermutlich auch geringfügig schneller (wobei das eh von der Internetverbindung abhängt). :S

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 20:06
    Zitat

    Aber das sieht sehr kompliziert aus :D


    Das ist eigentlich gar nicht so schwer. Mein Script macht im grunde nur das, was normalerweise der Firefox oder IE macht, nur stark vereinfacht. ;) Wenn man sich ein bisschen mit HTTP auskennt, dann ist das schon wesentlich verständlicher ^^.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 19:12

    So. Ich hoffe euch gefällt mein Stooorage.com Downloader. 8)

    Spoiler anzeigen
    [autoit]


    ; - Author: name22 (http://www.autoit.de)

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

    $sInputURL = InputBox("Downloader", "Page URL")
    If @error Then Exit MsgBox(16, "Error", "Invalid URL")

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

    TCPStartup()

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

    $sIP = TCPNameToIP("stooorage.com")

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

    $iSocket = TCPConnect($sIP, 80)
    If @error Then Exit MsgBox(16, "Error", "Unable to connect to Server")

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

    $sRequest = 'GET ' & $sInputURL & ' HTTP/1.1' & @CRLF & _
    'Host: stooorage.com:80' & @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 & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    TCPSend($iSocket, $sRequest)

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

    Do
    $sHTTP_Header = TCPRecv($iSocket, 1)
    Until $sHTTP_Header <> ""
    Do
    $sHTTP_Header &= TCPRecv($iSocket, 1)
    Until StringRight($sHTTP_Header, 4) = @CRLF & @CRLF

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

    $sHTTP_Content = ""
    Do
    $sHTTP_Content &= TCPRecv($iSocket, 1)
    Until StringRight($sHTTP_Content, 7) = "</html>"

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

    $aPictureURL = StringRegExp($sHTTP_Content, '<img src="([^"<>]+?)" alt="', 1)
    If @error Then Exit MsgBox(16, "Error", "Could not find Picture URL.")

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

    $aURLSplit = StringRegExp($aPictureURL[0], 'http://(.+?)(/.+)', 1)

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

    $sIP = TCPNameToIP($aURLSplit[0])

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

    $iSocket = TCPConnect($sIP, 80)
    If @error Then Exit MsgBox(16, "Error", "Unable to connect to Server")

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

    $sRequest = 'GET ' & $aURLSplit[1] & ' HTTP/1.1' & @CRLF & _
    'Host: ' & $aURLSplit[0] & ':80' & @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 & _
    'Referer: ' & $sInputURL & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    TCPSend($iSocket, $sRequest)

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

    $sHTTP_Header = ""
    Do
    $sHTTP_Header = TCPRecv($iSocket, 1)
    Until $sHTTP_Header <> ""
    Do
    $sHTTP_Header &= TCPRecv($iSocket, 1)
    Until StringRight($sHTTP_Header, 4) = @CRLF & @CRLF

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

    ConsoleWrite($sHTTP_Header)

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

    $aContentLength = StringRegExp($sHTTP_Header, 'Content-Length: (\d+)', 1)
    If @error Then Exit MsgBox(16, "Error", "FileSize Error.")

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

    $bContent = "0x"
    Do
    $bContent &= StringTrimLeft(TCPRecv($iSocket, 1024, 1), 2)
    Until BinaryLen($bContent) = $aContentLength[0]

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

    $iFile = FileOpen(@ScriptDir & "\Download.jpg", 18)
    FileWrite($iFile, $bContent)
    FileClose($iFile)

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

    TCPCloseSocket($iSocket)
    TCPShutdown()

    [/autoit]
  • Erweiterter Koda-Formdesigner?

    • name22
    • 23. Juni 2011 um 18:17

    Ich würde an deiner Stelle dann mit Arrays arbeiten... Das macht das ganze wesentlich übersichtlicher.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 18:14
    Zitat

    Also ich bekomme das Bild sofort, Rechtsklick - Grafik anzeigen - auf neue Grafik Rechtsklick - Grafik speichern unter; wo liegt jetzt dein Problm ?!?


    Das Problem liegt darin, dass InetGet Cookies nicht unterstützt und logischerweise auch keinen Referer hat. Deshalb war ja mein Vorschlag, das entweder mit der IE.au3 zu lösen (siehe PokerFaces Script) oder mit TCP und HTTP zu arbeiten. Beim Zweiten wäre das kein Problem, da Cookies, Referer, User-Agent etc. ganz leicht manipuliert werden können ;).

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 17:54

    Nachdem ich den Werbeblocker aus, die Cookies ein und den Referer eingeschaltet habe funktioniert es :pinch: ... Der Imagehoster ist meiner Meinung nach der letzte Dreck und ich würde niemals einen Hoster verwenden bei dem ü18 Werbung angezeigt wird :rolleyes: .

  • Erweiterter Koda-Formdesigner?

    • name22
    • 23. Juni 2011 um 17:49

    Das liegt daran, dass die Controls die nach dem zweiten Dummycontrol erzeugt werden eine höhere ControlID als dieses haben, und somit nicht mehr gespeichert werden (die For Schleife zählt ja nur bis zur ControlID des zweiten Dummys ;)). Du kannst die Dummys auch weglassen, ich habe die nur eingebaut, damit mann einfach beeinflussen kann ab wann und bis wohin die Positionen der Controls gespeichert werden.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 17:45

    Bin ich jetzt doof? :pinch: Hast du den Referer aktiviert?

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 17:42

    Ich nehme an, das liegt daran, dass ich Firefox verwende... Benutzt du IE? Ich versuch es mal mit einem gefälschten User-Agent.

  • Erweiterter Koda-Formdesigner?

    • name22
    • 23. Juni 2011 um 17:36
    Zitat

    genau machst? Du splittest den String, die Koordinate, ja, aber wofür genau?


    Damit ich die X und Y Komponente habe? ^^ Oder wo soll ich denn bitte 300:400 als Koordinaten angeben? Bei X oder bei Y? :P

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 17:33

    Ich hab mir die Kommunikation zwischen Server und Client mal angeschaut, und sobald ich versuche das Bild zu öffnen (mit der direkten URL), wird einfach nur ein 301 (moved permanently) zurückgegeben und man wird auf die ursprüngliche Seite umgeleitet.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 17:27
    Zitat

    Wenn du dir den Quelltext anschaust, findest du den direkten Link zu dem Foto und damit kannst du es sofort runterladen!!


    Nein, eben nicht.

  • Bild runterladen von stooorage.com

    • name22
    • 23. Juni 2011 um 16:55

    Man könnte auch mit TCP und HTTP arbeiten. Ich kenn mich damit zwar aus, aber da ich bei deinem tollen Hoster noch nicht mal das Bild sehe egal ob ich Cookies akzeptiert oder den Werbeblocker ausgeschaltet habe. :rolleyes:
    PS: Den Werbeblocker auf dieser Seite auszuschalten, würde ich minderjährigen nicht empfehlen :pinch: ...

  • Erweiterter Koda-Formdesigner?

    • name22
    • 23. Juni 2011 um 16:41

    Du vergisst, dass der Schlüssel in dieser Ini nur die ControlID des jeweiligen Controls darstellt. Du musst die Werte der Schlüssel mit StringSplit bearbeiten um den X und Y Wert zu bekommen.
    Du könntest es ja z.B. so machen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    ;- Author: name22 (http://www.autoit.de)

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

    $hWnd = GUICreate("Drag/Drop Controls", 400, 400)
    $cDummy_Start = GUICtrlCreateDummy()
    $cButton = GUICtrlCreateButton("Button", 50, 50, 60, 25)
    $cLabel = GUICtrlCreateLabel("Label", 100, 200)
    $cEdit = GUICtrlCreateEdit("Edit", 200, 50, 180, 100)
    $cDummy_End = GUICtrlCreateDummy()
    Switch FileExists(@ScriptDir & "\ControlPos.ini")
    Case True
    $aSection = IniReadSection(@ScriptDir & "\ControlPos.ini", "Controls")
    If @error Then ContinueCase
    For $i = 1 To $aSection[0][0]
    $aPos = StringSplit($aSection[$i][1], ":", 2)
    GUICtrlSetPos($aSection[$i][0], $aPos[0], $aPos[1])
    Next
    EndSwitch
    GUISetState()

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

    $vUser32Dll = DllOpen("user32.dll")

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    For $i = $cDummy_Start + 1 To $cDummy_End - 1
    $aPos = ControlGetPos($hWnd, "", $i)
    IniWrite("ControlPos.ini", "Controls", $i, $aPos[0] & ":" & $aPos[1])
    Next
    DllClose($vUser32Dll)
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    $aMousePos = GUIGetCursorInfo($hWnd)
    If $aMousePos[4] Then
    $iControl = $aMousePos[4]
    $aPos = ControlGetPos($hWnd, "", $iControl)
    $iDist_X = $aMousePos[0] - $aPos[0]
    $iDist_Y = $aMousePos[1] - $aPos[1]
    While _IsPressed("01", $vUser32Dll)
    $aMousePos = GUIGetCursorInfo($hWnd)
    ControlMove($hWnd, "", $iControl, $aMousePos[0] - $iDist_X, $aMousePos[1] - $iDist_Y)
    Sleep(10)
    WEnd
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • 3D Game: Labyrinthos (Zeit-/Lanmodus) + Wettbewerb

    • name22
    • 23. Juni 2011 um 16:01

    Cool. Stargate :D.

  • Erweiterter Koda-Formdesigner?

    • name22
    • 23. Juni 2011 um 15:54

    Wieso schreibst du die Positionen nicht einfach manuell ins Script? :huh:

  • GUI_Hole als Rechteck

    • name22
    • 22. Juni 2011 um 23:28
    Zitat

    Achso, ich haben den sarkastischen Unterton nicht mitbekommen :rofl:


    Passiert mir auch manchmal... :D Das kann bei Lehrern und anderen "Autoritätspersonen" allerdings problematisch werden ^^. "Redet von mir aus ruhig weiter, ist ja nicht so als ob ihr den Unterricht stört" - "Na dann..."

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™