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

  • Kicktipp Bundesliga 2019/2020 Wett-Tippen!

    • UEZ
    • 23. Juli 2019 um 14:21

    Theoretisch kannst du jederzeit dich anmelden, aber um die Bonus Fragen zu tippen, spätestens bis nächsten Freitag, glaube ich. Kann am Ende eventuell entscheidend sein.

    Du kannst auch jetzt die nächsten paar Spieltage tippen. Ist am Anfang ehe raten... ;)

  • Kicktipp Bundesliga 2019/2020 Wett-Tippen!

    • UEZ
    • 20. Juli 2019 um 15:32

    Halli Hallo,

    es ist wieder soweit die nächste Runde einzuläuten.

    Wer mitmachen möchte, einfach auf autoit-bl kostenlos Mitglied werden und lostippen.

    Btw, es wäre nett, wenn der User Name dem aus diesem Forum identisch ist, um einfach einen Bezug zu haben. DANKE.

    Die Teilnehmer der letzten Saison sind nicht gelöscht und können direkt loslegen, falls gewollt.

    Happy Tipping.

    Edit:

    Gewonnen hat Tweaky. Herzlichen Glückwunsch:klatschen:

    Kicktipp2019-2020.png

  • FaceDetection UDF

    • UEZ
    • 25. Juni 2019 um 18:12

    Bitnugger Wunderschönes Gesicht :)

  • FaceDetection UDF

    • UEZ
    • 23. Juni 2019 um 19:25

    Hallo eukalyptus,

    schöne dich wieder hier zu sehen! :)

    Das Ergebnis ist durchaus brauchbar. Ich habe leider nicht so viele Bilder mit Gesichtern, werde aber mal danach googeln.

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 21. Juni 2019 um 14:41
    Zitat von alpines

    Ich dachte ich könnte in Ruhe frühstücken aber wenn UEZ hier so einen Druck macht :P

    Ruhig "Brauner". ;)

    Ich hatte gerade ein bisschen Leerlauf...

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 21. Juni 2019 um 09:56

    Könnt ihr dies bitte testen?

    C
    ;Coded by UEZ build 2019-06-21 beta
    
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <WinAPIGdiDC.au3>
    #include <WinAPISysWin.au3>
    
    _GDIPlus_Startup()
    
    ; enum _PROCESS_DPI_AWARENESS -> https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx
    Global Enum $DPI_AWARENESS_INVALID = -1, $PROCESS_DPI_UNAWARE = 0, $PROCESS_SYSTEM_DPI_AWARE, $PROCESS_PER_MONITOR_DPI_AWARE
    
    Global Enum $Context_UnawareGdiScaled = -5, $Context_PerMonitorAwareV2, $Context_PerMonitorAware, $Context_SystemAware, $Context_Unaware
    
    ; enum _MONITOR_DPI_TYPE
    Global Enum $MDT_EFFECTIVE_DPI = 0, $MDT_ANGULAR_DPI, $MDT_RAW_DPI
    Global Const $MDT_DEFAULT = $MDT_EFFECTIVE_DPI
    
    Global $aDPI[2] = [1, 1], $dpiScaledX, $dpiScaledY
    
    _WinAPI_SetDPIAwareness()
    
    If @OSBuild < 9200 Then
        $aDPI = _GDIPlus_GraphicsGetDPIRatio()
    Else
        If @OSBuild < 10000 Then $aDPI = _WinAPI_GetDpiForMonitor()
    EndIf
    
    Global Const $WM_DPICHANGED = 0x02E0
    Global $iLabel1, $iLabel2, $iLabel3, $iInput, $iButton
    Example1()
    
    _GDIPlus_Shutdown()
    
    Func Example1() ;example by alpines
        Local Const $GUI_CLIENT_WIDTH = 314
        Local Const $GUI_CLIENT_HEIGHT = 130
    
        Local $hGUI = GUICreate("Beispiel 1", $GUI_CLIENT_WIDTH, $GUI_CLIENT_HEIGHT, -1, -1)
        GUISetFont(12 * $aDPI[1], 400, 0, "Times New Roman")
    
        $iLabel1 = GUICtrlCreateLabel("Label1", 16, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[1], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        $iLabel2 = GUICtrlCreateLabel("Label2", 64, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[1], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        $iLabel3 = GUICtrlCreateLabel("Label3", 112, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[1], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        $iInput = GUICtrlCreateInput("Input1", 160, 16, 137, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[1], 400, 0, "Times New Roman", 5)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        $iButton = GUICtrlCreateButton("Schließen", 16, 48, 283, 65)
        GUICtrlSetFont(-1, 10 * $aDPI[1], 400, 0, "Times New Roman", 5)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        GUISetState(@SW_SHOW, $hGUI)
        GUIRegisterMsg($WM_DPICHANGED, "WM_DPICHANGED")
    
        While True
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $iButton
                    GUIDelete($hGUI)
                    ExitLoop
    
            EndSwitch
        WEnd
    EndFunc   ;==>Example1
    
    Func WM_DPICHANGED($hWnd, $iMsg, $wParam, $lParam)
        Local $tRECT = DllStructCreate($tagRECT, $lParam)
        Local $iDPIX = _WinAPI_LoWord($wParam), $iDPIY = _WinAPI_HiWord($wParam)
        $dpiScaledX = $iDPIX / 96
        $dpiScaledY = $iDPIY / 96
        Local $iW = $tRECT.right - $tRECT.left, $iH = $tRECT.bottom - $tRECT.top
        Local $aWPos = WinGetPos($hWnd)
        _WinAPI_SetWindowPos($hWnd, 0, $aWPos[0], $aWPos[1], $iW, $iH, BitOR($SWP_NOZORDER, $SWP_NOACTIVATE))
        UpdateControlFontSize()
    EndFunc
    
    Func UpdateControlFontSize()
        GUICtrlSetFont($iLabel1, 10 * $dpiScaledX, 400, 0, "Times New Roman", 5)
        GUICtrlSetFont($iLabel2, 10 * $dpiScaledX, 400, 0, "Times New Roman", 5)
        GUICtrlSetFont($iLabel3, 10 * $dpiScaledX, 400, 0, "Times New Roman", 5)
        GUICtrlSetFont($iInput, 10 * $dpiScaledX, 400, 0, "Times New Roman", 5)
        GUICtrlSetFont($iButton, 10 * $dpiScaledX, 400, 0, "Times New Roman", 5)
    EndFunc
    
    Func _GDIPlus_GraphicsGetDPIRatio($iDPIDef = 96)
        Local $hGfx = _GDIPlus_GraphicsCreateFromHWND(0)
        If @error Then Return SetError(1, @extended, 0)
        Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0)
        If @error Then Return SetError(2, @extended, 0)
        Local $iDPI = $aResult[2]
        _GDIPlus_GraphicsDispose($hGfx)
        Local $aResults[2] = [$iDPIDef / $iDPI, $iDPI / $iDPIDef]
        Return $aResults
    EndFunc   ;==>_GDIPlus_GraphicsGetDPIRatio
    
    Func _WinAPI_GetDpiForMonitor($dpiType = $MDT_DEFAULT, $iDPIDef = 96)
        Local $aMonitors = _WinAPI_EnumDisplayMonitors()
        Local $x, $y
        Local $aRet = DllCall("Shcore.dll", "long", "GetDpiForMonitor", "long", $aMonitors[1][0], "int", $dpiType, "uint*", $x, "uint*", $y)
        If @error Or Not IsArray($aRet) Then Return SetError(1, 0, 0)
        Local $aDPI[2] = [$iDPIDef / $aRet[3], $aRet[3] / $iDPIDef]
        Return $aDPI
    EndFunc   ;==>_WinAPI_GetDpiForMonitor
    
    Func _WinAPI_SetDPIAwareness($hGUI = 0)
        Switch @OSBuild
            Case 6000 To 9199
                If Not DllCall("user32.dll", "bool", "SetProcessDPIAware") Then Return SetError(1, 0, 0)
                Return 1
            Case 9200 To 13999
                _WinAPI_SetProcessDpiAwareness($PROCESS_PER_MONITOR_DPI_AWARE)
                If @error Then Return SetError(1, 0, 0)
                Return 1
            Case @OSBuild > 13999
                #cs
                    Context_Unaware = ((DPI_AWARENESS_CONTEXT)(-1)),
                    Context_SystemAware = ((DPI_AWARENESS_CONTEXT)(-2)),
                    Context_PerMonitorAware = ((DPI_AWARENESS_CONTEXT)(-3)),
                    Context_PerMonitorAwareV2 = ((DPI_AWARENESS_CONTEXT)(-4)),
                    Context_UnawareGdiScaled = ((DPI_AWARENESS_CONTEXT)(-5))
                #ce
                _WinAPI_SetProcessDpiAwarenessContext($Context_PerMonitorAware, $hGUI)
                If @error Then Return SetError(3, @error, 0)
                Return 1
        EndSwitch
        Return -1
    EndFunc   ;==>_WinAPI_SetDPIAwareness
    
    Func _WinAPI_SetProcessDpiAwareness($DPIAware) ;https://docs.microsoft.com/en-us/windows/desktop/api/shellscalingapi/nf-shellscalingapi-setprocessdpiawareness
        DllCall("Shcore.dll", "long", "SetProcessDpiAwareness", "int", $DPIAware)
        If @error Then Return SetError(1, 0, 0)
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwareness
    
    Func _WinAPI_SetProcessDpiAwarenessContext($DPIAwareContext = $Context_PerMonitorAware, $hGUI = 0, $iMode = 3) ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext
        $DPIAwareContext = ($DPIAwareContext < -5) ? -5 : ($DPIAwareContext > -1) ? -1 : $DPIAwareContext
        $iMode = ($iMode < 1) ? 1 : ($iMode > 3) ? 3 : $iMode
        Switch $iMode
            Case 1
                Local $hDC = _WinAPI_GetDC($hGUI)
                Local $aResult1 = DllCall("user32.dll", "ptr", "GetDpiFromDpiAwarenessContext", "ptr", $hDC)
                If @error Or Not IsArray($aResult1) Then Return SetError(11, 0, 0)
                _WinAPI_ReleaseDC(0, $hDC)
                Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult1[0] + $DPIAwareContext)
                If @error Or Not IsArray($aResult) Then Return SetError(12, 0, 0)
            Case 2
    ;~             If Not $hGUI Then $hGUI = WinGetHandle(AutoItWinGetTitle())
                Local $aResult2 = DllCall("user32.dll", "int", "GetWindowDpiAwarenessContext", "ptr", $hGUI)
                If @error Or Not IsArray($aResult2) Then Return SetError(21, 0, 0)
                Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult2[0] + $DPIAwareContext)
                If @error Or Not IsArray($aResult) Then Return SetError(22, 0, 0)
            Case 3
                Local $aResult31 = DllCall("user32.dll", "ptr", "GetThreadDpiAwarenessContext")
                If @error Or Not IsArray($aResult31) Then Return SetError(31, 0, 0)
                Local $aResult32 = DllCall("user32.dll", "ptr", "GetAwarenessFromDpiAwarenessContext", "ptr", $aResult31[0])
                If @error Or Not IsArray($aResult32) Then Return SetError(32, 0, 0)
                Local $aResult = DllCall("user32.dll", "Bool", "SetThreadDpiAwarenessContext", "int", $aResult32[0] + $DPIAwareContext)
                If @error Or Not IsArray($aResult) Then Return SetError(33, 0, 0)
        EndSwitch
    
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwarenessContext
    Alles anzeigen

    Keine Ahnung, wie das Skript unter Win7 / Win 8 läuft...

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 19. Juni 2019 um 16:30

    Mein Screenshooter funktioniert auch nicht richtig, wenn DPI Awareness nicht aktiviert wurde. Dann kannst du nicht richtig den Bereich markieren.


    [Blockierte Grafik: https://i.ibb.co/pwWdr3M/DPI-Awareness.png]

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 19. Juni 2019 um 15:53

    Nun ja, das hängt davon ab, wie du deine GUI dargestellt haben willst. Ohne DPI Awareness wird die GUI entsprechend vergrößert und die GUI erscheint "blurry". So sieht es zumindest auf meinem Win10 aus, wenn ich nur eine von drei Monitoren auf 125% stelle.

    Die GUI sieht auf den anderen zwei Monitoren ok aus, aber sobald ich die GUI auf den 3. Monitor verschiebe, wird die GUI vergrößert und unscharf dargestellt. Kann auch sein, dass die GUI zu groß wird.

    Monitor 3 habe ich z.B. auf 150% gestellt und ohne DPI Awareness passt eine Applikation nicht mehr in den sichtbaren Bereich - mit DPI Awareness schon.

    Artikel: https://docs.microsoft.com/en-us/windows/…ment-on-windows

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 19. Juni 2019 um 15:34

    Genau, so sollte es aussehen. Wenn der Monitor z.B. auf 125% gestellt wurde, sollte die GUI auf dem Monitor genauso aussehen, wie bei 100%. Ohne die Funktion wird die GUI größer und unschärfer.

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 19. Juni 2019 um 15:25

    Ok, ich habe Win10 laufen und es wird die DPI nicht benötigt, da sonst die Fonts kleiner werden.

    Kannst du die Zeilen 19-23 aktivieren und nochmals testen?

    Danke.

  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • UEZ
    • 19. Juni 2019 um 14:14

    Kannst du das hier mal bitte testen?

    C
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <WinAPIGdiDC.au3>
    
    _GDIPlus_Startup()
    
    ; enum _PROCESS_DPI_AWARENESS -> https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx
    Global Enum $DPI_AWARENESS_INVALID = -1, $PROCESS_DPI_UNAWARE = 0, $PROCESS_SYSTEM_DPI_AWARE, $PROCESS_PER_MONITOR_DPI_AWARE
    
    ; enum _MONITOR_DPI_TYPE
    Global Enum $MDT_EFFECTIVE_DPI = 0, $MDT_ANGULAR_DPI, $MDT_RAW_DPI
    Global Const $MDT_DEFAULT = $MDT_EFFECTIVE_DPI
    
    Global $aDPI[2] = [1, 1]
    
    _WinAPI_SetDPIAwareness()
    
    ;~ If @OSBuild < 9200 Then
    ;~     $aDPI = _GDIPlus_GraphicsGetDPIRatio()
    ;~ Else
    ;~     $aDPI = _WinAPI_GetDpiForMonitor()
    ;~ EndIf
    
    Example1()
    
    _GDIPlus_Shutdown()
    
    Func Example1()
        Local Const $GUI_CLIENT_WIDTH = 314
        Local Const $GUI_CLIENT_HEIGHT = 130
    
        Local $hGUI = GUICreate("Beispiel 1", $GUI_CLIENT_WIDTH, $GUI_CLIENT_HEIGHT, -1, -1)
        GUISetFont(12 * $aDPI[0], 400, 0, "Times New Roman")
    
        Local $hLabel1 = GUICtrlCreateLabel("Label1", 16, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        Local $hLabel2 = GUICtrlCreateLabel("Label2", 64, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        Local $hLabel3 = GUICtrlCreateLabel("Label3", 112, 16, 36, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Times New Roman", 5)
        GUICtrlSetBkColor(-1, 0x3399FF)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        Local $hInput = GUICtrlCreateInput("Input1", 160, 16, 137, 21)
        GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Times New Roman", 5)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        Local $hButton = GUICtrlCreateButton("Schließen", 16, 48, 283, 65)
        GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Times New Roman", 5)
        GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    
        GUISetState(@SW_SHOW, $hGUI)
    
        While True
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $hButton
                    GUIDelete($hGUI)
                    ExitLoop
    
            EndSwitch
        WEnd
    EndFunc
    
    Func _GDIPlus_GraphicsGetDPIRatio($iDPIDef = 96)
        Local $hGfx = _GDIPlus_GraphicsCreateFromHWND(0)
        If @error Then Return SetError(1, @extended, 0)
        Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0)
        If @error Then Return SetError(2, @extended, 0)
        Local $iDPI = $aResult[2]
        _GDIPlus_GraphicsDispose($hGfx)
        Local $aResults[2] = [$iDPIDef / $iDPI, $iDPI / $iDPIDef]
        Return $aResults
    EndFunc   ;==>_GDIPlus_GraphicsGetDPIRatio
    
    Func _WinAPI_GetDpiForMonitor($dpiType = $MDT_DEFAULT, $iDPIDef = 96)
        Local $aMonitors = _WinAPI_EnumDisplayMonitors()
        Local $x, $y
        Local $aRet = DllCall("Shcore.dll", "long", "GetDpiForMonitor", "long", $aMonitors[1][0], "int", $dpiType, "uint*", $x, "uint*", $y)
        If @error Or Not IsArray($aRet) Then Return SetError(1, 0, 0)
        Local $aDPI[2] = [$iDPIDef / $aRet[3], $aRet[3] / $iDPIDef]
        Return $aDPI
    EndFunc   ;==>_WinAPI_GetDpiForMonitor
    
    Func _WinAPI_SetDPIAwareness($hGUI = 0)
        Switch @OSBuild
            Case 6000 To 9199
                DllCall("user32.dll", "bool", "SetProcessDPIAware")
            Case 9200 To 13999
                _WinAPI_SetProcessDpiAwareness($PROCESS_PER_MONITOR_DPI_AWARE)
            Case 14000 To 30000
                #cs
                    Context_Unaware = ((DPI_AWARENESS_CONTEXT)(-1)),
                    Context_SystemAware = ((DPI_AWARENESS_CONTEXT)(-2)),
                    Context_PerMonitorAware = ((DPI_AWARENESS_CONTEXT)(-3)),
                    Context_PerMonitorAwareV2 = ((DPI_AWARENESS_CONTEXT)(-4)),
                    Context_UnawareGdiScaled = ((DPI_AWARENESS_CONTEXT)(-5))
                #ce
                _WinAPI_SetProcessDpiAwarenessContext(-3, $hGUI)
        EndSwitch
    EndFunc
    
    Func _WinAPI_SetProcessDpiAwareness($DPIAware) ;https://docs.microsoft.com/en-us/windows/desktop/api/shellscalingapi/nf-shellscalingapi-setprocessdpiawareness
        DllCall("Shcore.dll", "long", "SetProcessDpiAwareness", "int", $DPIAware)
        If @error Then Return SetError(1, 0, 0)
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwareness
    
    Func _WinAPI_SetProcessDpiAwarenessContext($DPIAwareContext, $hGUI = 0) ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext
        Local $hDC = _WinAPI_GetDC($hGUI)
        Local $aResult1 = DllCall("user32.dll", "ptr", "GetDpiFromDpiAwarenessContext", "ptr", $hDC)
        If Not $hGUI Then $hGUI = WinGetHandle(AutoItWinGetTitle())
        Local $aResult2 = DllCall("user32.dll", "ptr", "GetWindowDpiAwarenessContext", "ptr", $hGUI)
        Local $aResult3 = DllCall("user32.dll", "ptr", "GetThreadDpiAwarenessContext")
        Local $aResult4 = DllCall("user32.dll", "int", "GetAwarenessFromDpiAwarenessContext", "ptr", $aResult2[1])
        _WinAPI_ReleaseDC(0, $hDC)
        $DPIAwareContext = ($DPIAwareContext < -5) ? -5 : ($DPIAwareContext > -1) ? -1 : $DPIAwareContext
        Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult1[0] + $DPIAwareContext)
        If @error Or Not $aResult[0] Then Return SetError(1, 0, 0)
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwarenessContext
    Alles anzeigen
  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 1. Juni 2019 um 13:58

    Die Bundesliga 19/20 fängt am 16. August an, ergo noch eine Menge Zeit. Ich werde Angang August die neue Tipprunde erstellen und wieder ein Topic dazu aufmachen.

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

    • UEZ
    • 28. Mai 2019 um 20:41

    Frauen-WM? Hui, keine Ahnung, dass da eine Frauen-WM läuft. Momentan kann ich kein TV schauen, da meine beiden Sat-Schüsseln verstellt sind, bin auf Online IPTV angewiesen, den ich über mein Samsung Smart-TV streame, solange die Kanäle funzen, bis ich sie wieder aktualisieren muss. X(

    Ich weiß auch nicht, wer überhaupt mittippen möchte. Ich persönlich stehe noch nicht auf Frauen-Fußball, da fehlt noch einiges...:saint:

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

    • UEZ
    • 28. Mai 2019 um 19:48
    Zitat von Xorianator

    :rofl:

    Muss dich beunruhigen, der 1. FC Union Berlin. Verfolge Fußball nicht aktiv, gehe aber ab und zu in deren Stadion. Am 23.12. erstrecht.

    Union Berlin ist nun erstklassig, ergo bei der nächsten Tipprunde kannst du dann mittippen. ;)

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

    • UEZ
    • 23. Mai 2019 um 16:15
    Zitat von Tweaky

    Habe gerade Win 10 1903 installiert und die aktuelle Version 1.83 funktioniert ^^

    Wie hast du den WebScreenshot nun hinbekommen?

    Die GDI Funktionen wurden anscheinend in 1809 dahin gehend geändert, dass das Kopieren des Bildinhaltes nur noch für die sichtbaren Bereiche funktioniert, alle anderen Bereiche bleiben schwarz. Vorher musste nur 1 Pixel im sichtbaren Bereich sein, damit das komplette Fenster geblittet werden konnte.

    Ward hatte eine Weg gefunden (über AutoItObject), wie man das Rendern des IE Inhalts in ein DC umleiten kann, so dass man dann nur noch die Bitmap abspeichern muss. Ich habe meine gegen diese Funktion ausgetauscht.

    Danke für dein Feeback. Ich hatte auch die 1903 in meine VM getestet. ;)

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

    • UEZ
    • 18. Mai 2019 um 21:44

    Glückwunsch an autoiter zum Sieg:thumbup:

  • GDI+ DoppelPendel

    • UEZ
    • 6. April 2019 um 12:55

    Dein Pendel sieht gut aus. :thumbup:

  • GDI+ Spiral Text

    • UEZ
    • 30. März 2019 um 14:59

    Nach langer Zeit wieder ein kleines GDI+ Skript von mir. :)

    GDI+ Spiral Text.png

    C
    ;Coded by UEZ v0.40 build 2019-03-30
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    
    _GDIPlus_Startup()
    
    Global Const $iW = 600, $iH = 600
    Global Const $hGUI = GUICreate("GDI+ Spiral Text", $iW, $iH)
    GUISetBkColor(0x606E8C)
    GUISetState()
    Global Const $hDC = _WinAPI_GetDC($hGUI)
    Global Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC)
    Global Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
    Global Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap)
    Global Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer)
    _GDIPlus_GraphicsSetSmoothingMode($hCanvas, 4)
    _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C)
    _GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, 4)
    _GDIPlus_GraphicsSetInterpolationMode($hCanvas, 7)
    _GDIPlus_GraphicsSetCompositingQuality($hCanvas, 2)
    
    ;~ _GDIPSpiralText(" AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.")
    _GDIPSpiralText(' AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying "runtimes" required!..............')
    
    _GDIPlus_GraphicsDispose($hCanvas)
    _WinAPI_SelectObject($hDC_backbuffer, $DC_obj)
    _WinAPI_DeleteDC($hDC_backbuffer)
    _WinAPI_DeleteObject($hHBitmap)
    _WinAPI_ReleaseDC($hGUI, $hDC)
    _GDIPlus_Shutdown()
    GUIDelete()
    Exit
    
    
    Func _GDIPSpiralText($sText)
        Local Const $fPi = ACos(-1), $fRad = ACos(-1) / 180, $fDeg = 180 / ACos(-1)
        Local $aText = StringSplit(StringReverse($sText), "", 2), $i, $fCx = $iW / 2, $fCy = $iH / 2, $fDegree, $iLen = UBound($aText)
        Local $tCoord = DllStructCreate("float x[" & $iLen & "];float y[" & $iLen & "];ptr img[" & $iLen & "];ptr gfx[" & $iLen & "]")
        Local $fSize = $iLen / Sqrt(($iW * $iW) + ($iH * $iH)) * 512, $fSize2 = $fSize * 2
        Local $mwx, $mwy, $fFontSize, $f1, $f2, $c1 = $fSize / 2, $c2 = $fSize2 / 2, $fRadius = Sqrt(($iW * $iW) / 10 + ($iH * $iH) / 10)
        Local $iDX = -$fSize / 2, $iDY = $iDX
    
        Local $hDLL = DllOpen("user32.dll"), $bESC = False, $c3, $c4 = $iLen / 6, $c5 = 0.85 * Sqrt(($iW * $iW) / 2 + ($iH * $iH) / 2) / 2
        #Region GDI+
        For $i = 0 To $iLen - 1
            $tCoord.img($i + 1) = _GDIPlus_BitmapCreateFromScan0($fSize, $fSize)
            $tCoord.gfx($i + 1) = _GDIPlus_ImageGetGraphicsContext($tCoord.img($i + 1))
            _GDIPlus_GraphicsSetSmoothingMode($tCoord.gfx($i + 1), 6)
            _GDIPlus_GraphicsSetTextRenderingHint($tCoord.gfx($i + 1), 4)
            _GDIPlus_GraphicsSetPixelOffsetMode($tCoord.gfx($i + 1), 4)
        Next
    
        Local Const $hPath = _GDIPlus_PathCreate()
        _GDIPlus_PathAddEllipse($hPath, 4, 4, $iW - 9, $iH - 9)
        $tRECTF = _GDIPlus_RectFCreate(0, 0, $fSize, $fSize / 2)
        Local Const $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRECTF, 0xFF101030, 0xFF3030E0, 45, 0, 1), _
                $hFormat = _GDIPlus_StringFormatCreate(), _
                $hFamily = _GDIPlus_FontFamilyCreate("Consolas"), _
                $hBrush_c = _GDIPlus_BrushCreateSolid(0xFF000000), _
                $hPen = _GDIPlus_PenCreate(0x18101010), $hPen2 = _GDIPlus_PenCreate(0x30101010, 8), $hBrush2 = _GDIPlus_PathBrushCreateFromPath($hPath)
        _GDIPlus_LineBrushSetSigmaBlend($hBrush, 0.9, 0.95)
    
        _GDIPlus_StringFormatSetAlign($hFormat, 1)
        _GDIPlus_StringFormatSetLineAlign($hFormat, 1)
    
        Local Const $hBitmap_Bg = _GDIPlus_BitmapCreateFromScan0($iW, $iH), _
                $hGfx_Bg = _GDIPlus_ImageGetGraphicsContext($hBitmap_Bg)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx_Bg, 6)
        _GDIPlus_GraphicsSetPixelOffsetMode($hGfx_Bg, 4)
    
        _GDIPlus_PathBrushSetCenterColor($hBrush2, 0xFFC0C0C0)
        _GDIPlus_PathBrushSetCenterPoint($hBrush2, $fCx, $fCy)
        _GDIPlus_PathBrushSetSurroundColor($hBrush2, 0xFFFFFFFF)
        _GDIPlus_PathBrushSetGammaCorrection($hBrush2, True)
    
        _GDIPlus_GraphicsFillEllipse($hGfx_Bg, 4, 4, $iW - 9, $iH - 9, $hBrush2)
        _GDIPlus_GraphicsDrawEllipse($hGfx_Bg, 4, 4, $iW - 9, $iH - 9, $hPen2)
    
        Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH), _
                $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx, 6)
        _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 4)
    
        Local Const $hBitmap_Cursor = _GDIPlus_BitmapCreateFromScan0($fSize2, $fSize2), _
                $hGfx_Cursor = _GDIPlus_ImageGetGraphicsContext($hBitmap_Cursor)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx_Cursor, 6)
        _GDIPlus_GraphicsSetPixelOffsetMode($hGfx_Cursor, 4)
    
        Local Const $hMatrix = _GDIPlus_MatrixCreate(), $hMatrix2 = _GDIPlus_MatrixCreate()
    
        _GDIPlus_PenSetStartCap($hPen, 0x14)
        #EndRegion GDI+
    
        For $i = $iLen - 1 To 0 Step -1
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Bg, 0, 0, $iW, $iH)
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap, 0, 0, $iW, $iH)
    
            $fDegree = $iLen / $c4 * $i ;space between chars
    
            $tCoord.x($i + 1) = $fCx + Sin($fDegree * $fRad) * $fRadius
            $tCoord.y($i + 1) = $fCy + Cos($fDegree * $fRad) * $fRadius
    
            $fRadius -= $c5 / $iLen
            $fFontSize = $fRadius / 7
    
            ;calculate the angle of each char
            $mwx = $tCoord.x($i + 1) - $fCx
            $mwy = $fCy - $tCoord.y($i + 1)
            $c3 = ($mwx + Sqrt($mwx * $mwx + $mwy * $mwy))
            $fAngle = 2 * -ATan($mwy / $c3) * $fDeg
            If Not $c3 Then
                If $mwx < 0 Then
                    $fAngle = -180
                Else
                    $fAngle = 180
                EndIf
            EndIf
    
            $f1 = $iDX + $c1
            $f2 = $iDY + $c1
            If $i < $iLen - 1 Then
                _GDIPlus_PenSetWidth($hPen, $fFontSize / 8)
                DllCall($__g_hGDIPDll, "int", "GdipDrawLine", "handle", $hCanvas, "handle", $hPen, "float", $tCoord.x($i + 1) + $f1, "float", $tCoord.y($i + 1) + $f2, _
                        "float", $tCoord.x($i + 2) + $f1, "float", $tCoord.y($i + 2) + $f2)
                DllCall($__g_hGDIPDll, "int", "GdipDrawLine", "handle", $hGfx, "handle", $hPen, "float", $tCoord.x($i + 1) + $f1, "float", $tCoord.y($i + 1) + $f2, _
                        "float", $tCoord.x($i + 2) + $f1, "float", $tCoord.y($i + 2) + $f2)
            EndIf
    
            ;rotated each char according to angle
            _GDIPlus_MatrixSetElements($hMatrix) ;reset matrix
            _GDIPlus_MatrixTranslate($hMatrix, $c1, $c1)
            _GDIPlus_MatrixRotate($hMatrix, 90 + $fAngle)
            _GDIPlus_MatrixTranslate($hMatrix, -$c1, -$c1)
            _GDIPlus_GraphicsSetTransform($tCoord.gfx($i + 1), $hMatrix)
    
            ;rotate cursor
            _GDIPlus_MatrixSetElements($hMatrix2) ;reset matrix
            _GDIPlus_MatrixTranslate($hMatrix2, $c2, $c2)
            _GDIPlus_MatrixRotate($hMatrix2, 90 + $fAngle)
            _GDIPlus_MatrixTranslate($hMatrix2, -$c2, -$c2)
            _GDIPlus_GraphicsSetTransform($hGfx_Cursor, $hMatrix2)
    
            _GDIPlus_GraphicsClear($hGfx_Cursor, 0x00000000)
            DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hGfx_Cursor, "handle", $hBrush_c, _
                    "float", $fSize * 0.475, "float", $fSize * 0.2, _
                    "float", $fSize * 1.075, "float", $fSize * 1.575)
            $hFont = _GDIPlus_FontCreate($hFamily, $fFontSize)
            _GDIPlus_GraphicsDrawStringEx($tCoord.gfx($i + 1), $aText[$i], $hFont, _GDIPlus_RectFCreate(0, 0, $fSize, $fSize), $hFormat, $hBrush)
    
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $tCoord.img($i + 1), $iDX + $tCoord.x($i + 1), $iDY + $tCoord.y($i + 1), $fSize, $fSize)
            _GDIPlus_GraphicsDrawImageRect($hGfx, $tCoord.img($i + 1), $iDX + $tCoord.x($i + 1), $iDY + $tCoord.y($i + 1), $fSize, $fSize)
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Cursor, $tCoord.x($i + 1) + $f1 - $fFontSize, $tCoord.y($i + 1) + $f2 - $fFontSize, $fFontSize * 2, $fFontSize * 2)
    
            _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI
            _GDIPlus_FontDispose($hFont)
    
    ;~         _GDIPlus_GraphicsDrawLine($hGfx, $iW / 2, 0, $iW / 2, $iH)
    ;~         _GDIPlus_GraphicsDrawLine($hGfx, 0, $iH / 2, $iW, $iH / 2)
    
            _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C)
    
            If Not $bESC Then Sleep(30)
            If _IsPressed("20", $hDLL) Then ;speed up
                $bESC = True
            EndIf
        Next
        DllClose($hDLL)
    
        _GDIPlus_MatrixSetElements($hMatrix)
        _GDIPlus_PenSetWidth($hPen, 8)
        Do
            _GDIPlus_MatrixTranslate($hMatrix, $fCx, $fCy)
            _GDIPlus_MatrixRotate($hMatrix, -0.1)
            _GDIPlus_MatrixTranslate($hMatrix, -$fCx, -$fCy)
            _GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix)
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Bg, 0, 0, $iW, $iH)
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap, 0, 0, $iW, $iH)
            _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY)
            _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C)
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
    
        _GDIPlus_PathDispose($hPath)
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_StringFormatDispose($hFormat)
        _GDIPlus_PenDispose($hPen)
        _GDIPlus_PenDispose($hPen2)
        _GDIPlus_BrushDispose($hBrush_c)
        _GDIPlus_BrushDispose($hBrush)
        _GDIPlus_MatrixDispose($hMatrix)
        _GDIPlus_MatrixDispose($hMatrix2)
        For $i = 0 To $iLen - 1
            _GDIPlus_GraphicsDispose($tCoord.gfx($i + 1))
            _GDIPlus_BitmapDispose($tCoord.img($i + 1))
        Next
        _GDIPlus_GraphicsDispose($hGfx)
        _GDIPlus_BitmapDispose($hBitmap)
        _GDIPlus_GraphicsDispose($hGfx_Cursor)
        _GDIPlus_BitmapDispose($hBitmap_Cursor)
        _GDIPlus_GraphicsDispose($hGfx_Bg)
        _GDIPlus_BitmapDispose($hBitmap_Bg)
    EndFunc   ;==>_GDIPSpiralText
    Alles anzeigen
  • rückwärtszähler in MsgBox möglich?

    • UEZ
    • 29. März 2019 um 09:42
    Zitat von Musashi

    Danke Dir ;)

    Ich selbst benötige sie momentan zwar nicht, aber immer gut so etwas im Köcher zu haben.

    Off-Topic :

    Es ist schon auffällig, wieviele Links nach gar nicht mal so langer Zeit in's Leere laufen. Daher sollte man nützliche Skripte immer lokal sichern, gemäß dem Motto : "Doppelt hält besser" ;)

    UEZ :

    Du bist ja auch im engl. Forum sehr aktiv. Es gibt (gab) viele Topskripte des Users Ward - leider hat er sie um 2013/2014 'rum alle gelöscht. Nur aus Interesse : Kennst Du die Hintergründe ?

    Unabhängig davon ist das Projekt  ExtMsgBox-UDF von Melba23 sicher einen Blick wert, zumal der Thread noch aktiv läuft.


    Gruß Musashi

    Alles anzeigen

    So aktiv bin ich nicht mehr, aber ich kann dir leider nichts zu Ward sagen. Er ist schon lange nicht mehr aktiv. Er scheint überall mal aktiv zu sein. Er hat für PureBasic AutoIt Funktionen programmiert - scheint ein universal Talent zu sein.

  • rückwärtszähler in MsgBox möglich?

    • UEZ
    • 28. März 2019 um 23:09

    @Musashi bitte sehr. ;)

    Dateien

    _MsgBox Example.au3 522 Byte – 474 Downloads _MsgBox.au3 15,55 kB – 499 Downloads _GUIResourcePic.au3 22,74 kB – 505 Downloads

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™