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. UEZ

Beiträge von UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 10. Juni 2012 um 13:26

    Da verlangst du was von AutoIt ab!

    30 FPS -> d.h. alle 1/30 Sekunde oder 0,0333 Sekunden oder 33 ms muss ein Screenshot erstellt, an den Encoder geschickt und in das File geschrieben werden.

    Es wird nicht die Zeit, sondern die FPS als Abbruchkriterium genommen. D.h. für 5 Sekunden bei 30 FPS werden 150 Bilder an den Encoder geschickt und als Abbruchkriterium genommen.

    Da AutoIt zu langsam ist, dauert dies länger und es kommt zu Frame Aussetzern!

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 9. Juni 2012 um 20:41

    Oh Mann, was wäre ich ohne dein Feedback! 8o :thumbup:

    Sollte jetzt gefixt sein!


    Anscheinend testest du den Screenshooter regelmäßig...


    VIELEN DANK für deine Tests!

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 2. Juni 2012 um 22:17

    Ops, kommt davon, wenn es schnell gehen soll. :whistling:

    Neue Version ist hochgeladen.

    Danke für's Testen!

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 2. Juni 2012 um 21:46

    Schaue mal, ob's jetzt passt.

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 2. Juni 2012 um 20:46
    Zitat von Tweaky

    Hi UEZ,
    ich hab einen Bug in der 1.49 Build 2012-06-01 Final gefunden.

    Bei diesem WebScreenshot (Einstellung bei Breite egal) erhalte ich nur eine weiße Seite.
    Mit der 1.48 Build 2012-05-18 Final funktionierte es noch.

    Es ist im Prinzip kein Bug von dem Windows Screenshooter direkt, sondern mit IE9 -> siehe hier: http://www.autoitscript.com/forum/topic/14…ded-ie-control/

    Mit IE10, sprich Win8, ist das seltsame Verhalten nicht zu beobachten, d.h. Web Seitenhöhe > 8192 Pixel werden wieder richtig in der GUI gerendert.

    Ich habe das 8192 Pixel Limit mit absicht herausgenommen, da ansonsten die Webseite abgeschnitten wird und es im Prinzip, wie gesagt, nicht ein Problem mit dem Screenshooter ist.

    Soll ich das Limit mit IE9 wieder rein nehmen?

    Gruß,
    UEZ

  • Das Skript muss ein Textfile checken ob es duplicate links gibt

    • UEZ
    • 1. Juni 2012 um 22:43

    Wie schnell wird es, wenn du _ArrayUnique() durch meine Funktion ersetzt?

    Gruß,
    UEZ

  • Das Skript muss ein Textfile checken ob es duplicate links gibt

    • UEZ
    • 1. Juni 2012 um 22:25

    Kannst ja mal dies probieren:

    Spoiler anzeigen
    [autoit]


    $timer = TimerInit()
    $aIPs = StringRegExp(FileRead(@ScriptDir & "\Links.txt"), "\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):\d+\s*", 3)
    ConsoleWrite("Datei einlesen und nach IPs filtern: " & Round(TimerDiff($timer), 4) & " ms." & @LF)
    ConsoleWrite(UBound($aIPs) & " IPs gefunden." & @LF)

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

    ConsoleWrite("Doppelte Einträge aus dem Array entfernen..." & @LF)
    $timer = TimerInit()
    $aUnique = ArrayUnique($aIPs)
    ConsoleWrite("Laufzeit doppelte Einträge entfernen: " & Round(TimerDiff($timer), 4) & " ms." & @LF)
    ConsoleWrite(UBound($aUnique) & " IPs nach Lösung, falls doppelte gefunden." & @LF)

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

    ; #FUNCTION# ============================================================================
    ; Name.............: ArrayUnique
    ; Description ...: Returns the Unique Elements of a 1-dimensional or 2-dimensional array.
    ; Syntax...........: _ArrayUnique($aArray[, $iBase = 0, oBase = 0])
    ; Parameters ...: $aArray - The Array to use
    ; $iBase - [optional] Is the input Array 0-base or 1-base index. 0-base by default
    ; $oBase - [optional] Is the output Array 0-base or 1-base index. 0-base by default
    ; Return values: Success - Returns a 1-dimensional or 2-dimensional array containing only the unique elements
    ; Failure - Returns 0 and Sets @Error:
    ; 0 - No error.
    ; 1 - Returns 0 if parameter is not an array.
    ; 2 - Array has more than 2 dimensions
    ; 3 - Array is already unique
    ; 4 - when source array is selected as one base but UBound(array) - 1 <> array[0] / array[0][0]
    ; 5 - Scripting.Dictionary cannot be created for 1D array unique code
    ; Author .........: UEZ 2010 for 2D-array, Yashied for 1D-array (modified by UEZ)
    ; Version ........: 0.96 Build 2010-11-20 Beta
    ; Remark ........: check is always case sensitive
    ; =======================================================================================
    Func ArrayUnique($aArray, $iBase = 0, $oBase = 0)
    If Not IsArray($aArray) Then Return SetError(1, 0, 0) ;not an array
    If UBound($aArray, 0) > 2 Then Return SetError(2, 0, 0) ;array is greater than a 2D array
    If UBound($aArray) = $iBase + 1 Then Return SetError(3, 0, $aArray) ;array is already unique because of only 1 element
    Local $dim = UBound($aArray, 2), $i
    If $dim Then ;2D array
    If $iBase And UBound($aArray) - 1 <> $aArray[0][0] Then Return SetError(4, 0, 0)
    Local $oD = ObjCreate('Scripting.Dictionary')
    If @error Then Return SetError(5, 0, 0)
    Local $i, $j, $k = $oBase, $l, $s, $aTmp, $flag, $sSep = Chr(01)
    Local $aUnique[UBound($aArray)][$dim]
    If Not $oBase Then $flag = 2
    For $i = $iBase To UBound($aArray) - 1
    For $j = 0 To $dim - 1
    $s &= $aArray[$i][$j] & $sSep
    Next
    If Not $oD.Exists($s) And StringLen($s) > 3 Then
    $oD.Add($s, $i)
    $aTmp = StringSplit(StringTrimRight($s, 1), $sSep, 2)
    For $l = 0 To $dim - 1
    $aUnique[$k][$l] = $aTmp[$l]
    Next
    $k += 1
    EndIf
    $s = ""
    Next
    $oD.RemoveAll
    $oD = ""
    If $k > 0 Then
    If $oBase Then $aUnique[0][0] = $k - 1
    ReDim $aUnique[$k][$dim]
    Else
    ReDim $aUnique[1][$dim]
    EndIf
    Else ;1D array
    If $iBase And UBound($aArray) - 1 <> $aArray[0] Then Return SetError(4, 0, 0)
    Local $sData = '', $sSep = ChrW(160), $flag
    For $i = $iBase To UBound($aArray) - 1
    If Not IsDeclared($aArray[$i] & '$') Then
    Assign($aArray[$i] & '$', 0, 1)
    $sData &= $aArray[$i] & $sSep
    EndIf
    Next
    If Not $oBase Then $flag = 2
    Local $aUnique = StringSplit(StringTrimRight($sData, 1), $sSep, $flag)
    EndIf
    Return $aUnique
    EndFunc ;==>ArrayUnique

    [/autoit]


    Und diese Datei habe ich benutzt: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Gruß,
    UEZ

    Dateien

    Links.txt 451 Byte – 386 Downloads
  • Das Skript muss ein Textfile checken ob es duplicate links gibt

    • UEZ
    • 1. Juni 2012 um 22:05

    Kannst du mal einen Extrakt aus der Textdatei mit den Links posten? Ich würde gerne den Inhalt sehen, wie diese Datei aufgebaut ist.

    Gruß,
    UEZ

  • func Befehl

    • UEZ
    • 31. Mai 2012 um 10:00

    Wo klickst du denn rum? Wenn es nicht gegen die Regln verstößt -> Forumregeln, bekommst du hilfe!


    Gruß,
    UEZ

  • Label über Progressbar

    • UEZ
    • 30. Mai 2012 um 22:40

    Man kann auch eine Child GUI einsetzen.

    [autoit]


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

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

    $hGui = GUICreate("Progress", 520, 60)
    GUISetBkColor(0xF0F0F0, $hGUI)
    $gui_progress1 = GUICtrlCreateProgress(10, 6, 500, 45)
    $hGUI_Child = GUICreate("", 200, 15, 150, 21, $WS_POPUP, $WS_EX_MDICHILD + $WS_EX_LAYERED, $hGui)
    $iColor = 0xAAAAAA
    GUISetBkColor($iColor, $hGUI_Child)
    $gui_progress1_status = GUICtrlCreateLabel("", 0, 0, 200, 15, $SS_CENTER)
    GUICtrlSetFont(-1, 9, 400, 0, "", 5)
    GUISetState(@SW_SHOW, $hGui)
    _WinAPI_SetLayeredWindowAttributes($hGUI_Child, $iColor)
    GUISetState(@SW_SHOW, $hGUI_Child)

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

    AdlibRegister("_Update", 200)

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

    Do
    Until GUIGetMsg() = -3

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

    Func _Update()
    Local Static $i = 0
    Local Static $Up = 1
    If $Up Then
    $i += 5
    Else
    $i -= 5
    EndIf

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

    GUICtrlSetData($gui_progress1, $i)
    GUICtrlSetData($gui_progress1_status, "Dateien werden vorbereitet: " & $i & "%")

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

    If $i = 100 Then $Up = 0
    If $i = 0 Then $Up = 1
    EndFunc

    [/autoit]


    Getestet auf Win7 x64 + Aero.

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 29. Mai 2012 um 18:28

    Ach so, das meinst du. Du hattest von dem Web Screenshot gesprochen und mir war der Zusammenhang nicht ganz klar.

    Kann ich implementieren.

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 29. Mai 2012 um 18:23
    Zitat von Tweaky

    Danke UEZ,
    das mit der Breite vom Webseitenscreenshot funktioniert.

    Hätte da noch 2 Verbesserungen.
    1. Das beenden mit der ESC-Taste sollte auch funktionieren, wenn man eine bestimmte Länge eingestellt hat.
    2. Wäre es möglich nach dem Webseitenscreenshot eine Art Autobeschneiden einzubauen. Es sollte der unnötigte gleichfarbige Rand rechts und links abgeschnitten werden. Geht dies mit den Pixel...-Funktionen?
    Dann wäre es nicht ganz so tragisch, wenn eine Breite von 1920 ausgewählt würde und die Webseite nur auf 1024 optimiert ist.

    Zu 1: verstehe nicht, was du meinst. Wo soll ESC funzen und welche Länge?
    Zu 2: ich überlege gerade eine Art Cropping einzubauen, wo du den Ausschnitt auswähltst und dieser dann ausgeschnitten und eingefügt wird. Ein Art Automatismus wird schwierig und zeitaufwändig werden.

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 29. Mai 2012 um 12:51

    ISI360: danke für dein Feedback! 8o

    Hast recht - die Variable $About_End wurde nur einmal initialisiert und nach Ablauf des Intros stand sie immer auf True, was immer beenden des Intros bedeutet.

    So, bist auch Chip Muzik Liebhaber... :rock: War schwer was zu finden, das klein und relativ gut klingt.

    Neue Version hochgeladen...

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 28. Mai 2012 um 22:07

    Ich denke, dass die Web Seiten eher 1024 Pixel optimiert sind. Ich habe den Code inzwischen aktualliesiert, so dass man die Breite aussuchen kann.

    Ich habe in Ward's Code noch nicht ganz durchgeblickt und wollte auch so viel wie möglich selbst schreiben.

    Nach meiner Meinung sind die Tage des WinXP lange gezählt...

    Ich lade gleich die aktuelle Version hoch.

    Edit: neue Version ist nun hochgeladen!

    Danke für dein Feedback.

    Gruß,
    UEZ

  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 28. Mai 2012 um 19:04

    Das liegt daran, dass die Breite eine feste Größe hat, nämlich 1024 Pixel. Auf irgend eine Breite muss ich mich festlegen und 1024 Pixel decken die meisten Bildschirme ab.

    Die Webseite wird ein einer GUI mit der oben genannten Größe und vorher gerenderten Höhe eingebettet gerendert und anschließend von der GUI ein Screenshoot erstellt.
    Die GUI liegt genau mit einem Pixel im sichtbaren Bereich, damit ein Screenshot erstellt werden kann, ohne das man die GUI sehen kann. Diese Methode geht leider nur mit Aero.
    Unter Win8 gibt der Code nur ein weißes Bitmap zurück, habe ich bereits gefixt -> nächstes Release.

    Ward's Code ist da viel eleganter und läucht auch ohne Aero.

    Soll ich ein Context Menu erstellen, wo man die Breite aussuchen kann?

    Gruß,
    UEZ

  • Fußball-Europameisterschaft (Tippspiel)

    • UEZ
    • 28. Mai 2012 um 00:17

    Nach dem WM- und Deutscher Meister Titel jetzt noch ein EM Titel würde sich in meiner Trophäensammlung echt gut machen. :rock:

    Gelle Pee? :P

    Gruß,
    UEZ

  • Happy Birthday SEuBo und anno2008

    • UEZ
    • 26. Mai 2012 um 11:48

    Happy Birthday euch beiden und alles Gute!


    Feiert schön.


    Gruß,
    UEZ

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 24. Mai 2012 um 17:55

    Info: Update auf v1.09 Build 2012-05-18, falls jemand das Tool benutzt...

    Gruß,
    UEZ

  • Assembler UDF ?

    • UEZ
    • 20. Mai 2012 um 12:46
    Zitat von Marsi

    Zusammen mit _GDIPlus_GraphicsCreateFromHDC ergibt sich ein Buffer den sowohl GDI+ ($hGFX), GDI ($hDC) und ASM ($ptr) nutzen können. (Im Beispiel ist das in Zeile 100 bis 110. Da wird beim gleichen Bitmap mit GDI+, GDI und ASM gemalt)

    Bei Bitmaps die direkt in GDI+ geladen wurden weiß ich leider auch keinen eleganten Ausweg um an irgendwelche Daten zu kommen...

    Genau hier für suchen wir eine Lösung, denn z.B. mit

    [autoit]


    _GDIPlus_GraphicsCreateFromHWND()

    [/autoit]

    kannst du direkt in den Grafikspeicher zeichnen, so dass du das Ergebnis sofort siehst. In den oben erwähnten Verfahren musst du noch mit _WinAPI_BitBlt() das Ergebnis sichtbar machen, sprich die Bitmap aus dem Speicher in den Grafikspeicher kopieren.

    Die Frage ist nun, gibt es auch in ASM ein möglichkeit direkt den Grafikspeicherbereich zu benutzen!

    Gruß,
    UEZ

  • Assembler UDF ?

    • UEZ
    • 20. Mai 2012 um 01:18

    Klasse Sache - bin begeistert!

    Ich hoffe, dass es eine gute Sammlung an ASM Codes für GDI+ geben wird! :D

    Vielleicht kann ich auch was dazu beitragen!

    Gruß,
    UEZ

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™