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

  • WM 2018 Tipp Spiel

    • UEZ
    • 25. Januar 2019 um 16:17
    Zitat von tulaygeisel

    Könnte man sowas nicht nur für Fußball, sondern für alle Ballsportarten machen? Also WM und EM.

    Keine Ahnung, ob Kicktipp auch andere Sportarten unterstützt. Ich persönlich bin eher der Fussball interessierte. I.d.R. öffne ich auch für EM/WM/Bundesliga Wettbewerbe jeweils ein eigenes Tippspiel.

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

    • UEZ
    • 3. Januar 2019 um 14:32

    Falls der Code nicht direkt mit der Beta 3.3.15.0 läuft, dann einfach die Funktion _GDIPlus_ImageSaveAdd() in der UDF _GDIPlus_GIFAnim.au3 wieder "einschalten", die auskommentiert sein sollte.

    Hier die anderen 2 Funktionen:

    Code
    ; #FUNCTION# ====================================================================================================================
    ; Author ........: Authenticity
    ; Modified ......: Eukalyptus
    ; ===============================================================================================================================
    Func _GDIPlus_ImageAttributesSetRemapTable($hImageAttributes, $aColorMap = 0, $iColorAdjustType = 0, $bEnable = True)
        Local $aResult
    
        If IsArray($aColorMap) Then
            Local $iCount = $aColorMap[0][0]
            Local $tColorMap = DllStructCreate("uint[" & $iCount * 2 & "]")
    
            For $i = 1 To $iCount
                DllStructSetData($tColorMap, 1, $aColorMap[$i][0], ($i - 1) * 2 + 1)
                DllStructSetData($tColorMap, 1, $aColorMap[$i][1], ($i - 1) * 2 + 2)
            Next
    
            $aResult = DllCall($__g_hGDIPDll, "int", "GdipSetImageAttributesRemapTable", "handle", $hImageAttributes, "int", $iColorAdjustType, "int", $bEnable, "int", $iCount, "struct*", $tColorMap)
        Else
            $aResult = DllCall($__g_hGDIPDll, "int", "GdipSetImageAttributesRemapTable", "handle", $hImageAttributes, "int", $iColorAdjustType, "int", $bEnable, "int", 0, "struct*", 0)
        EndIf
    
        If @error Then Return SetError(@error, @extended, False)
        If $aResult[0] Then Return SetError(10, $aResult[0], False)
    
        Return True
    EndFunc   ;==>_GDIPlus_ImageAttributesSetRemapTable
    
    ; #FUNCTION# ====================================================================================================================
    ; Author ........: UEZ
    ; Modified ......:
    ; ===============================================================================================================================
    Func _GDIPlus_ImageAttributesSetThreshold($hImageAttributes, $fThreshold, $iColorAdjustType = $GDIP_COLORADJUSTTYPE_DEFAULT, $bEnable = True)
        Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipSetImageAttributesThreshold", "handle", $hImageAttributes, "int", $iColorAdjustType, "bool", $bEnable, "float", $fThreshold)
        If @error Then Return SetError(@error, @extended, False)
        If $aResult[0] Then Return SetError(10, $aResult[0], False)
    
        Return True
    EndFunc   ;==>_GDIPlus_ImageAttributesSetThreshold
    Alles anzeigen

    Danke an Bitnugger für den Hinweis. Ich selbst nutze die nicht veröffentlichte Beta 3.3.15.1, wo diese Funktionen bereits integriert sind. :whistling:

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

    • UEZ
    • 1. Januar 2019 um 18:05

    Danke für's Testen. Na dann warte ich auf das 1809 Update. Wenn ich eine Lösung habe, aktualisiere ich das Skript.

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

    • UEZ
    • 1. Januar 2019 um 17:41

    Hmm, ich habe noch die 1803 Version.

    Funktioniert dieses Skript:

    C
    #include <Clipboard.au3>
    #include <IE.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    ;Coded by UEZ 2011 - beta version
    
    If @OSBuild < 6000 Then Exit MsgBox(16, "Error!", "Script is running only on Vista+ os properly!", 10)
    
    ;https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
    RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", @ScriptName)
    If @error Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", @ScriptName, "REG_DWORD", 11001)
    
    
    Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
    Global $sChkAero = DllStructCreate("int;")
    DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "ptr", DllStructGetPtr($sChkAero))
    Global $aero = DllStructGetData($sChkAero, 1)
    DllClose($hDwmApiDll)
    If Not $aero Then Exit MsgBox(16, "Error", "Aero must be enabled to grab web sites properly!", 20)
    $sChkAero = 0
    
    Global $URL, $btn, $msg, $hWnd, $input, $i
    $hWnd = GUICreate("Save Web Page as an image", 320, 120)
    $input = GUICtrlCreateInput("https://web.de", 10, 5, 300, 20)
    $btn = GUICtrlCreateButton("Ok", 40, 35, 240, 70)
    ControlFocus($hWnd, "", $btn)
    GUISetState()
    
    While $msg <> -3
        $msg = GUIGetMsg()
        Select
            Case $msg = $btn
                Start()
            Case $msg = -3
                GUIDelete($hWnd)
                Exit
        EndSelect
    WEnd
    
    Func Start()
        $URL = GUICtrlRead($input)
        SplashTextOn("Screenshooting Web Site", "Please wait while taking screenshot", 300, 40, -1, -1, 1 + 2 + 4 + 32, "")
        AdlibRegister("Wait", 300)
        Web_Screenshot($URL)
        AdlibUnRegister("Wait")
        SplashOff()
        MsgBox(0, "Information", "Web Site Image copied to clipboard!", 10)
    EndFunc
    
    Func Web_Screenshot($url, $IEwidth = 1045)
        Local $oIE, $GUIActiveX, $oDocument,  $oBody, $BodyWidth, $BodyHeight, $oHtml
        Local $hGUI_WebGrab, $hWin, $aWin, $aMP
        Local Const $BrowserNavConstant = 2 + 256 + 2048 ;BrowserNavConstant -> http://msdn.microsoft.com/en-us/library/dd565688(v=vs.85).aspx
        $oIE = ObjCreate("Shell.Explorer.2") ;http://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx
    
        $hWin = WinGetHandle("Program Manager")
        $aWin = WinGetPos($hWin)
    
        #region render web site to get height
        $hGUI_WebGrab = GUICreate("",  0, 0, $aWin[0] - $BodyWidth + 1, $aWin[1] - $BodyHeight + 1, BitOR($WS_CLIPSIBLINGS, $WS_CLIPCHILDREN, $WS_POPUP),Default, WinGetHandle(AutoItWinGetTitle()))
    ;~     $hGUI_WebGrab = GUICreate("",  1024, 768, 0, 0, BitOR($WS_CLIPSIBLINGS, $WS_CLIPCHILDREN, $WS_POPUP),Default, WinGetHandle(AutoItWinGetTitle()))
        $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, $IEwidth, 256)
        GUISetState(@SW_MINIMIZE, $hGUI_WebGrab)
    ;~     GUISetState(@SW_SHOW, $hGUI_WebGrab)
    
    
        Local $timeout = 30 * 1000
        Local $timer = TimerInit()
        With $oIE
            .Silent = True
            .FullScreen = True
            .Resizable = False
            .Visible = False
            .StatusBar = False
            .AddressBar = False
            .Navigate($URL, $BrowserNavConstant, "_top")
            Do
                If TimerDiff($timer) > $timeout Then ExitLoop
                Sleep(100)
            Until $oIE.ReadyState = 4
            .Stop
            Sleep(2000)
        EndWith
        $oDocument = $oIE.document
        $oBody = $oDocument.body
        $oBody.scroll = "no"
        $oBody.style.borderStyle = "none"
        $BodyWidth = Min($oBody.scrollWidth, 4096)
        $BodyHeight = Min($oBody.scrollHeight, 8192)
        GUIDelete($hGUI_WebGrab)
        $GUIActiveX = 0
        #endregion
    
        Local $IE_Ver = RegRead("HKLM\SOFTWARE\Microsoft\Internet Explorer", "Version"), $height
        If $IE_Ver > 8 Then $BodyHeight = Min($BodyHeight, 8192)
    
    ;~     ConsoleWrite($oIE.Path & @CRLF)
    
        $hGUI_WebGrab = GUICreate("",  $BodyWidth,  $BodyHeight, $aWin[0] - $BodyWidth + 10, $aWin[1] - $BodyHeight + 10, BitOR($WS_CLIPSIBLINGS, $WS_CLIPCHILDREN, $WS_POPUP), Default, WinGetHandle(AutoItWinGetTitle()))
    ;~     $hGUI_WebGrab = GUICreate("",  $BodyWidth,  $BodyHeight, -1, -1, BitOR($WS_CLIPSIBLINGS, $WS_CLIPCHILDREN, $WS_POPUP), Default, WinGetHandle(AutoItWinGetTitle()))
        $GUIActiveX = GUICtrlCreateObj ($oIE, 0, 0, $BodyWidth,  $BodyHeight)
        GUISetState(@SW_SHOW, $hGUI_WebGrab) ;Show GUI for some milli seconds to make a screenshot
    
        $timer = TimerInit()
        With $oIE
            .Silent = True
            .FullScreen = True
            .Resizable = False
            .Visible = False
            .StatusBar = False
            .AddressBar = False
            .Navigate($URL, $BrowserNavConstant, "_top")
            Do
                If TimerDiff($timer) > $timeout Then ExitLoop
                Sleep(100)
            Until $oIE.ReadyState = 4
            .Stop
            Sleep(1000)
        EndWith
    
        $oDocument = $oIE.document
        $oBody =$oDocument.body
        $oHtml = $oDocument.documentElement
        $oBody.scroll = "no"
        $oBody.style.borderStyle = "none"
        $oBody.style.border = "0px"
        $oHtml.style.overflow = 'hidden'
        Sleep(5000)
        GUISetState(@SW_SHOW, $hGUI_WebGrab)      ;Show GUI
    
        Local $hDC = _WinAPI_GetWindowDC($hGUI_WebGrab)
        Local $hDC_Dummy = _WinAPI_GetWindowDC(0)
        Local $hMemDC = _WinAPI_CreateCompatibleDC($hDC_Dummy)
        Local $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Dummy, $BodyWidth, $BodyHeight)
        _WinAPI_SelectObject($hMemDC, $hBitmap)
        _WinAPI_BitBlt($hMemDC, 0, 0,  $BodyWidth, $BodyHeight, $hDC, 0, 0, $SRCCOPY)
    
        _WinAPI_DeleteDC($hMemDC)
        _WinAPI_ReleaseDC($hGUI_WebGrab, $hDC)
        _WinAPI_ReleaseDC(0, $hDC_Dummy)
        _WinAPI_ReleaseDC(0, $hDC)
    
        _ClipBoard_Open(0)
        _ClipBoard_Empty()
        _ClipBoard_SetDataEx($hBitmap, $CF_BITMAP)
        _ClipBoard_Close()
        _WinAPI_DeleteObject ($hBitmap)
    
        $GUIActiveX = 0
        $oIE = 0
        GUIDelete($hGUI_WebGrab)
        _ReduceMemory()
    EndFunc
    
    Func Min($a, $b)
        If $a < $b Then Return $a
        Return $b
    EndFunc
    
    Func Wait()
        Switch Mod($i, 4)
            Case 0
                ControlSetText("Screenshooting Web Site", "", "Static1", "Please wait while taking screenshot")
            Case 1
                ControlSetText("Screenshooting Web Site", "", "Static1", "Please wait while taking screenshot .")
            Case 2
                ControlSetText("Screenshooting Web Site", "", "Static1", "Please wait while taking screenshot ..")
            Case 3
                ControlSetText("Screenshooting Web Site", "", "Static1", "Please wait while taking screenshot ...")
        EndSwitch
        $i += 1
    EndFunc
    
    Func _ReduceMemory($ProcID = 0)
        If $ProcID = 0 or ProcessExists($ProcID) = 0 Then ; No process id specified or process doesn't exist - use current process instead.
            Local $ai_GetCurrentProcess = DllCall('kernel32.dll', 'ptr', 'GetCurrentProcess')
            Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'ptr', $ai_GetCurrentProcess[0])
            Return $ai_Return[0]
        EndIf
        Local $ai_Handle = DllCall("kernel32.dll", 'ptr', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $ProcID)
        Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'ptr', $ai_Handle[0])
        DllCall('kernel32.dll', 'int', 'CloseHandle', 'ptr', $ai_Handle[0])
        Return $ai_Return[0]
    EndFunc
    Alles anzeigen
  • AutoIt Windows Screenshooter v1.84 Build 2019-08-18

    • UEZ
    • 1. Januar 2019 um 17:26

    Ein schönes neues Jahr allen!

    Danke Tweaky für dein Feedback. Welches OS benutzt du bzw. welche IE Version ist installiert?

    Eigentlich habe ich am Webseiten Screenshot nichts wesentliches geändert, aber es scheint, dass ein KB Update das Automatisieren erschwert hat, denn ich muss erst einen Registry Eintrag setzen, damit das Resultat "ordentlich" aussieht.

    So sieht's bei mir aus, wenn ich autoit.de als Quelle benutze:

    [Blockierte Grafik: https://i.ibb.co/54Jd4gm/Windows-Screenshooter-Test.jpg]

  • Forenupdate - November 2018 - Probleme / Anregungen / Feedback - Sammelthread

    • UEZ
    • 18. November 2018 um 00:32

    Forum inkl. Dateianhänge sind nur noch erreichbar, wenn man eingeloggt ist.

    Ist blöd so...

  • GDIPlus Klick auf Objekt

    • UEZ
    • 17. November 2018 um 15:33

    Ich würde in diesem Fall mit Pfaden arbeiten (_GDIPlus_Path*). Du könntest dann einfach mit _GDIPlus_PathIsVisiblePoint() prüfen, ob die Maus den Pfad berührt.

    Schaue dazu einfach mal in der Hilfe Datei nach.

  • NTFS ACL Berechtigungen Anzeigen/Setzen

    • UEZ
    • 24. Oktober 2018 um 14:37

    Ich denke nicht, dass es mit nativen AutoIt Befehlen geht. Alternativ kannst du auch das CMD Tool CACLS.exe / ICACLS.exe benutzen.

  • The MATRIX build 2018-10-16

    • UEZ
    • 18. Oktober 2018 um 11:10

    Lottich : ich vermute, dass Aufgrund der Zufallskoordinaten die Wahrscheinlichkeit sehr klein ist, dass du ein gleiches Bild entdeckst. Wenn die GIF Animation relativ lange ist, dann sollte der kleine Wechsel zum Anfang nicht sonderlich stören.

    Oder du nimmst die Variante und generierst den Hintergrund in Echtzeit, wie im anderen Beispiel.

  • The MATRIX build 2018-10-16

    • UEZ
    • 16. Oktober 2018 um 17:16
    Zitat von Andy

    60FPS im Fullscreen, damit kann (muss) man leben! :o)

    Fullscreen ist zwar richtig, aber es wird nur auf halbe Größe gezeichnet und dann auf Fullscreen skaliert. Da "türke" ich etwas... :P

    Du kannst ja mal richtig auf Fullscreen die $iW / $iH setzen und checken, ob du noch deine 60 FPS bekommst. Meine alte Kiste schafft nur etwa die Hälfte...

    Btw, ich habe das Skript nochmals aktualisiert. Ich hatte vergessen, dass GDI Bitmaps, die mit CreateDIBSection erstellt wurden, schneller sind. Außerdem kann man jetzt nach dem Starten aussuchen, ob man Fullscreen starten möchte oder nicht.

    Ich glaube, dass reicht erst mal mit dem Matrix Skript. Ich habe noch eine weiter Idee, die ich versuchen werde in FB umzusetzen, da viel schneller, wenn ich die Farben manipulieren will.

  • The MATRIX build 2018-10-16

    • UEZ
    • 15. Oktober 2018 um 22:05

    Hi Lottich,

    man könnte es auch direkt in eine GUI darstellen, ohne eine Child GUI zu verwenden, aber beides ist möglich.

    Schaue mal hier: https://www.autoitscript.com/forum/topic/19…comment=1403561

    Anstelle der GIF Animation könnte man auch "The MATRIX" als Hintergrund darstellen. Probiere mal das zu basteln. :)

  • The MATRIX build 2018-10-16

    • UEZ
    • 15. Oktober 2018 um 21:21

    Oder hier: Direct2D UDF

  • The MATRIX build 2018-10-16

    • UEZ
    • 15. Oktober 2018 um 15:17

    Danke für euer Feedback.:)

    Kleines Update.

  • The MATRIX build 2018-10-16

    • UEZ
    • 12. Oktober 2018 um 12:24

    Der Performance Killer ist die For/Next Schleife in der Hauptschleife, insbesondere die _GDIPlus_GraphicsDrawStringEx() Funktion.

    Also, warum nicht die ganzen Zeichen vorher in ein Bitmap Array zeichnen und in der For/Next Schleife nur die Bitmaps in die GUI kopieren?

    Gedacht getan -> Steigerung von ca. 23 FPS auf ca. 35 FPS.

    Post#1 aktualisiert.

  • The MATRIX build 2018-10-16

    • UEZ
    • 11. Oktober 2018 um 21:47
    Zitat von mep

    Nettes Programm UEZ da bekommt ma echt wieder lust auf die Filme.

    Das einzige was mir aufgefallen ist, ist dass die FPS Anzeige nicht ganz stimmen kann. Wenn ma die Werte entsprechend anpasst, Fullscreen und auch entsprechend die Geschwindigkeit hoch schraubt, penndelt es sich bei 18FPS ein, das ganze ist aber definitiv komplett flüssig dargestellt.

    Wenn ich 1:1 Fullscreen schalte oder den Wert der Variable $iAmountChars stark erhöhe, dann gehen die FPS drastisch nach unten. Ich weiß nicht, welche Werte du angepasst hast.

    Ich habe nun auch eine Fullscreen Variante hinzugefügt (siehe Beitrag #1), aber gezeichnet wird nur auf der Hälfte der Desktop Größe, dann aber zu Fullscreen hoch skaliert. Ansonsten sieht's übel mit den FPS aus.

  • The MATRIX build 2018-10-16

    • UEZ
    • 10. Oktober 2018 um 23:54
    Zitat von Andy

    Einfach schön....

    Aber ich werde nie ein Fan von GDI+, denn alleine die beiden Zeilen

    Code
    DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas2, "handle", $hBrush_Bg, "float", 0, "float", 0, "float", $iW, "float", $iH)
    DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, "float", $iW, "float", $iH)

    "kosten" so viel, wie der gesamte andere Code im Loop zusammen:Face:

    Irgendwann in grauer Vorzeit hatte ich mal übers Blitten dieses Abdunkeln hinbekommen, das war dann echt fix. Ich werde mal suchen....:Glaskugel:

    Hmmm, ich habe auch gesucht, aber nichts in meiner Sammlung gefunden. Also habe ich Google gefragt und letztendlich die GDI Funktion "AlphaBlend" gefunden.

    AutoIt
    DllCall("Msimg32.dll", "bool", "AlphaBlend", "handle", _
                                    $hDC_backbuffer, "int", 0, "int", 0, "int", $iW, "int", $iH, _
                                    "handle", $hDC_backbuffer3, "int", 0, "int", 0, "int", $iW, "int", $iH, _
                                    "long", 0x10000 * 0x18)

    Leider ist sie nicht viel schneller als

    AutoIt
    DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, "float", $iW, "float", $iH)

    Beide laufen so ca. in 4-7 ms.

    Das Blitten der 32-bit GDI Bitmap erstellt mit _WinAPI_CreateDIBSection() funzt leider nicht richtig oder ich bin zu blöd (vermutlich das letztere).

    Bin mal gespannt, ob du was findest...:)

  • The MATRIX build 2018-10-16

    • UEZ
    • 9. Oktober 2018 um 22:22

    Ich hatte wieder mal bock was in GDI / GDI+ zu coden. Als Inspiration diente The Matrix Code Rain.

    MatrixCodeRain.png

    Download von The Matrix.au3 / The Matrix fullscreen.au3 siehe weiter unten. Source Code ist leider zu lang geworden, um ihn hier direkt zu posten (max. 20.000 Zeichen).

    Bitte melden, wenn jemand die MATRIX entschlüsselt hat. ;)

    Bis denne...

    Dateien

    The Matrix v1.30.au3 50,38 kB – 846 Downloads The MATRIX + Sound (FreeBasic).zip 3,55 MB – 1.195 Downloads
  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 24. August 2018 um 15:56

    Etwa der HSV? :rofl:

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 24. August 2018 um 14:53
    Zitat von Lottich

    Wie läuft das? ich tippe nur den aktuell kommenden Spieltag. Richtig?

    Du kann den aktuellen Spieltag tippen oder die komplette Saison, wenn du willst.

    Zitat von Xorianator

    Wenn du irgendwann mal die zweite Liga nimmst, dann bin ich mit von der Partie.

    Viel Erfolg allen!

    Hmm, warum willst du nur mitmachen, wenn ich die 2. Liga nehme? Ich bin auch kein Fußball Kenner und tippe eigentlich fast immer aus dem Bauch heraus, falls du denkst, dass die 2. Liga dir mehr "Gerechtigkeit" bietet.

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 23. August 2018 um 12:15

    Morgen geht's los. Wer noch Lust hat mit zu tippen, dann schnell noch anmelden und loslegen.

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™