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

  • DllStruct to Array - DllStructs übersichtlich anzeigen lassen

    • UEZ
    • 29. Januar 2024 um 20:07

    AspirinJunkie Danke für die Alternative zu der Built-in Funktion _WinAPI_DisplayStruct().

  • Balkengrafik

    • UEZ
    • 20. November 2023 um 10:01

    Als Start kannst du dies hier verwenden, um iCurrent darzustellen.

    AutoIt
    ;coded by UEZ build 2023-20-11
    
    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    _GDIPlus_Startup()
    Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit
    Global Const $iW = 600, $iH = 600, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Test"
    Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi
    AutoItSetOption("GUIOnEventMode", 1)
    
    GDIPlus_Test()
    
    AutoItSetOption("GUIOnEventMode", 0)
    _GDIPlus_Shutdown()
    
    
    Func GDIPlus_Test()
        $bExit = False
        $hGUI = GUICreate($sTitle, $iW, $iH) ;, 0, 0, $WS_POPUP)
        GUISetState(@SW_SHOW, $hGUI)
    ;~     GUISetCursor(16, 1)
    
        ;create canvas elements
        Local Const $hDC = _WinAPI_GetDC($hGUI)
        Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
        Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC)
        Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap)
        Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer)
        _GDIPlus_GraphicsSetSmoothingMode($hCanvas, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
        _GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    
        Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _
                    $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0808080), _
                    $hFormat_FPS = _GDIPlus_StringFormatCreate(), _
                    $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _
                    $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _
                    $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16)
        Local $fDiameter = 600
        Local Const $hBitmap_Clock = GenerateGauge($fDiameter)
        $iFPS = 0
        GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About")
        AdlibRegister("CalcFPS", 1000)
    
        Do
            _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Clock, 0, 0, $fDiameter, $fDiameter)
    
            _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text
            _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI
    
            $iFPS += 1
            If $bExit Then ExitLoop
        Until Not Sleep(30)
    
        AdlibUnRegister("CalcFPS")
        ;release resources
        _GDIPlus_FontDispose($hFont_FPS)
        _GDIPlus_FontFamilyDispose($hFamily_FPS)
        _GDIPlus_StringFormatDispose($hFormat_FPS)
        _GDIPlus_BrushDispose($hBrush_Clr)
        _GDIPlus_BrushDispose($hBrush_FPS)
        _GDIPlus_GraphicsDispose($hCanvas)
        _WinAPI_SelectObject($hDC_backbuffer, $DC_obj)
        _WinAPI_DeleteDC($hDC_backbuffer)
        _WinAPI_DeleteObject($hHBitmap)
        _WinAPI_ReleaseDC($hGUI, $hDC)
        GUIDelete($hGUI)
    EndFunc   ;==>GDIPlus_Test
    
    
    Func _Exit_About()
        $bExit = True
    EndFunc   ;==>_Exit_About
    
    Func CalcFPS() ;display FPS
        $iShowFPS = $iFPS
        $iFPS = 0
    EndFunc   ;==>CalcFPS
    
    Func GenerateGauge($fDiameter)
        Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($fDiameter, $fDiameter), $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap), _
                    $hEffect = _GDIPlus_EffectCreateBlur(10.5, 0), $fBorderSize = $fDiameter * 0.03333
        Local $hPen = _GDIPlus_PenCreate(0), $hMatrix, $hBrush = _GDIPlus_LineBrushCreate($fDiameter / 2, 0, $fDiameter / 2, $fDiameter, 0xF0F0F0F0, 0xF0303030, 3)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4)
        _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 4)
        _GDIPlus_GraphicsClear($hGfx, 0xFFFFFFFF)
        _GDIPlus_PenSetColor($hPen, 0xA0000000)
        _GDIPlus_PenSetWidth($hPen, $fBorderSize)
        Local Const $fSize = $fDiameter * 0.95 - $fBorderSize / 2, $fRadius = $fDiameter / 2
    
        _GDIPlus_LineBrushSetGammaCorrection($hBrush)
        _GDIPlus_GraphicsFillEllipse($hGfx, $fDiameter - $fDiameter * 0.94, $fDiameter - $fDiameter * 0.94, $fDiameter * 0.92, $fDiameter * 0.92, $hBrush)
    
        _GDIPlus_GraphicsDrawEllipse($hGfx, $fBorderSize + $fDiameter * 0.005, $fBorderSize + $fDiameter * 0.01, $fSize, $fSize, $hPen)
        _GDIPlus_BitmapApplyEffect($hBitmap, $hEffect)
        _GDIPlus_PenSetColor($hPen, 0xF0000000)
        _GDIPlus_GraphicsDrawEllipse($hGfx, $fBorderSize, $fBorderSize, $fSize, $fSize, $hPen)
    
        _GDIPlus_GraphicsTranslateTransform($hGfx, $fDiameter / 2, $fDiameter / 2)
        _GDIPlus_GraphicsRotateTransform($hGfx, -126)
        _GDIPlus_GraphicsTranslateTransform($hGfx, -$fDiameter / 2, -$fDiameter / 2)
    
        Local $iWidth1 = $fDiameter * 0.0125, $iHeight1 = $fDiameter / 15, $iWidth12 = $iWidth1 / 2, $fPosY = $fDiameter * 0.083333, _
              $iWidth2 = $fDiameter * 0.013333, $iHeight2 = $fDiameter * 0.0416667, $iWidth22 = $iWidth2 / 2
    
        _GDIPlus_BrushDispose($hBrush)
        $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
        For $i = 0 to 40
            _GDIPlus_GraphicsTranslateTransform($hGfx, $fRadius, $fRadius)
            _GDIPlus_GraphicsRotateTransform($hGfx, 6)
            _GDIPlus_GraphicsTranslateTransform($hGfx, -$fRadius, -$fRadius)
            Switch Mod($i, 4)
                Case 0
                    _GDIPlus_GraphicsFillRect($hGfx, $fRadius - $iWidth12, $fPosY, $iWidth1, $iHeight1, $hBrush)
                Case Else
    ;~                 _GDIPlus_GraphicsFillRect($hGfx, $fRadius - $iWidth22, $fPosY, $iWidth2, $iHeight2, $hBrush)
            EndSwitch
        Next
    
        _GDIPlus_GraphicsResetTransform($hGfx)
        _GDIPlus_PenDispose($hPen)
        _GDIPlus_BrushDispose($hBrush)
        $hBrush = _GDIPlus_LineBrushCreate(0, 0, $fSize, $fSize, 0x8000FF00, 0xC8FF0000, 3)
        $hMatrix = _GDIPlus_MatrixCreate()
        _GDIPlus_MatrixRotate($hMatrix, -5)
        _GDIPlus_LineBrushSetTransform($hBrush, $hMatrix)
        $hPen = _GDIPlus_PenCreate2($hBrush, $fDiameter * 0.03)
        _GDIPlus_GraphicsDrawArc($hGfx, $fBorderSize + $fDiameter * 0.03333, $fBorderSize + $fDiameter * 0.03333, $fSize * 0.93, $fSize * 0.93, -211.5, 243.5, $hPen)
        _GDIPlus_BrushDispose($hBrush)
        _GDIPlus_PenDispose($hPen)
    
        $hBrush = _GDIPlus_BrushCreateSolid(0x80000000)
        $hPen = _GDIPlus_PenCreate(0x40000000, 2)
        _GDIPlus_GraphicsFillEllipse($hGfx, $fDiameter / 2 - $iWidth2, $fDiameter / 2 - $iWidth2, $iWidth2 * 2, $iWidth2 * 2, $hBrush)
        _GDIPlus_GraphicsDrawEllipse($hGfx, $fDiameter / 2 - $iWidth2, $fDiameter / 2 - $iWidth2, $iWidth2 * 2, $iWidth2 * 2, $hPen)
    
        _GDIPlus_MatrixDispose($hMatrix)
        _GDIPlus_EffectDispose($hEffect)
        _GDIPlus_PenDispose($hPen)
        _GDIPlus_BrushDispose($hBrush)
        _GDIPlus_GraphicsDispose($hGfx)
        Return $hBitmap
    EndFunc
    Alles anzeigen

    Dies ist nur das Hintergrundbild, d.h. du müsstest noch einen drehenden Zeiger entsprechend dem $iCurrent Wert implementieren.

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 9. November 2023 um 14:24

    Natürlich ist das mit Autoit möglich, sogar viel einfacher, aber man will ja sein Horizont erweitern...

    Danke

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 9. November 2023 um 12:53

    Velted eigentlich geht es nicht um Autoit, sondern um ein Freebasic Tool, woran ich wieder mal arbeite. Es ist sehr interessant, wie man die WinAPI Funktionen ohne UDFs nutzt.

    Dadurch kann / muss man mehr in die Details gehen und lernt dabei mehr, als nur die UDFs zu nutzen.

    Falls interesse besteht: Color Constants v0.80 build 2023-11-08.zip

    Manchmal suche ich nach bestimmten Farben und durch das Tool ist es einfacher, die Farbe zu suchen.

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 8. November 2023 um 21:55

    Velted genau so habe ich mir das vorgestellt.

    MERCI.

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 8. November 2023 um 16:10

    Gibt es eine Möglichkeit, dass die Farben in der 3 Spalte immer angezeigt werden, nicht nur bei der Selektion?

    AutoIt
    ;coded by LarsJ / Velted
    #include <Array.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    
    Opt("MustDeclareVars", 1)
    
    Global $hGui, $hLV, $iLVx, $iLVy
    
    Example()
    
    
    Func Example()
    
        $hGui = GUICreate("Mark Cell in Listview", 500, 540)
    
        Local $idLV0 = GUICtrlCreateListView("Column 0|Column 1|Column 2", 25, 10, 250, 500)
        For $i = 0 To 99
            GUICtrlCreateListViewItem("Cell " & $i & ".0" & "|" & Hex(Int(Random() * 0xFFFFFF), 6) & "|", $idLV0)
        Next
        $hLV = GUICtrlGetHandle($idLV0)
        $iLVx = 25
        $iLVy = 10
    
        GUISetState()
    
        GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    Exit
            EndSwitch
        WEnd
    
    EndFunc   ;==>Example
    
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
        Local $tNMHDR, $hWndFrom, $iCode
        $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iCode = DllStructGetData($tNMHDR, "Code")
    
        Switch $hWndFrom
            Case $hLV
                Switch $iCode
                    ; Handle arrow key presses for selection movement
                    Case $NM_CUSTOMDRAW
                        Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
                        Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage")
                        Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") ; Item index
                        Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") ; Subitem index
                        Local $uItemState = DllStructGetData($tNMLVCUSTOMDRAW, "uItemState") ; Item state
    
                        Switch $dwDrawStage                     ; Holds a value that specifies the drawing stage
                            Case $CDDS_PREPAINT                 ; Before the paint cycle begins
                                Return $CDRF_NOTIFYITEMDRAW     ; Notify the parent window of any ITEM-related drawing operations
                            Case $CDDS_ITEMPREPAINT             ; Before painting an item
                                If _GUICtrlListView_GetItemSelected($hLV, $dwItemSpec) Then Return $CDRF_NOTIFYSUBITEMDRAW  ; Notify the parent window of any SUBITEM-related drawing operations
                                Return $CDRF_DODEFAULT
                            Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem
                                DllStructSetData($tNMLVCUSTOMDRAW, "uItemState", BitAND($uItemState, BitNOT($CDIS_SELECTED)))
                                Switch $iSubItem
                                    Case 0 To 1 ; Marked column
                                        DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFFFFFF) ; Forecolor white
                                        DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", 0xCC6600) ; Backcolor dark blue, BGR
                                    Case Else ; Other columns
                                        DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) ; Forecolor black
                                        DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", "0x" & _GUICtrlListView_GetItemText($hLV, $dwItemSpec, 1)) ; Backcolor white
                                EndSwitch
                                Return $CDRF_NEWFONT            ; $CDRF_NEWFONT must be returned after changing font or colors
                        EndSwitch
                EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen
  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 8. November 2023 um 14:54

    Moombas kein Problem.

    Was macht eigentlich die Zeile?

    Code
    DllStructSetData($tNMLVCUSTOMDRAW, "uItemState", BitAND($uItemState, BitNOT(0x11)))

    Die 3. Spalte beinhaltet die Farbe, die in der Spalte 2 steht. Mit der Lösung oben wird sie überschrieben (gut, hatte ich nicht erwähnt).

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 8. November 2023 um 14:08

    Velted wow, genau so sollte es sein. Danke!

    Moombas  Peter S. Taler Eine Multiauswahl will ich nicht - nur ein simples hoch und runter zusätzlich mit den Pfeiltasten.

    Danke euch allen!

  • ListView Markierung mit den Pfeiltasten bewegen

    • UEZ
    • 7. November 2023 um 22:35

    Hat jemand ein Idee, wie ich den Code erweitern kann, sodass die Selektion mit den Pfeiltasten nach oben / unten verschoben werden kann?

    AutoIt
    ;coded by LarsJ
    #include <Array.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    
    Opt("MustDeclareVars", 1)
    
    Global $hGui, $hLV, $iLVx, $iLVy, $aHit[2] = [-1, -1]    ; $aHit contains row & col of marked cell
    
    Example()
    
    
    Func Example()
    
        $hGui = GUICreate("Mark Cell in Listview", 500, 540)
    
        Local $idLV0 = GUICtrlCreateListView("Column 0|Column 1|Column 2", 25, 10, 250, 500)
        For $i = 0 To 99
            GUICtrlCreateListViewItem("Cell " & $i & ".0" & "|Cell " & $i & ".1" & "|Cell " & $i & ".2", $idLV0)
        Next
        $hLV = GUICtrlGetHandle($idLV0)
        $iLVx = 25
        $iLVy = 10
    
        GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    
        GUISetState()
    
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    Exit
            EndSwitch
        WEnd
    
    EndFunc   ;==>Example
    
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
        Local $tNMHDR, $hWndFrom, $iCode
        $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iCode = DllStructGetData($tNMHDR, "Code")
    
        Switch $hWndFrom
    
            Case $hLV
                Local $iSelectedItem = _GUICtrlListView_GetSelectionMark($hLV)
                ConsoleWrite(_GUICtrlListView_GetSelectedIndices($hLV) & @CRLF)
                Switch $iCode
                    ; Handle arrow key presses for selection movement
    
                    Case $LVN_KEYDOWN
                        Local $tNMLVKEYDOWN = DllStructCreate($tagNMLVKEYDOWN, $lParam)
                        Local $iVKey = DllStructGetData($tNMLVKEYDOWN, "VKey")
    ;~                     If $iSelectedItem > -1 Then
    ;~                         Local $iNewIndex = -1
    ;~                         If $iVKey = 38 Then ; Up arrow key
    ;~                             $iNewIndex = $iSelectedItem - 1
    ;~                         ElseIf $iVKey = 40 Then ; Down arrow key
    ;~                             $iNewIndex = $iSelectedItem + 1
    ;~                         EndIf
    ;~                         ConsoleWrite($iNewIndex & @CRLF)
    ;~                         If $iNewIndex > -1 And $iNewIndex < _GUICtrlListView_GetItemCount($hLV) Then
    ;~                             _GUICtrlListView_SetItemSelected($hLV, $iNewIndex, True, False)
    ;~                             _GUICtrlListView_RedrawItems($hLV, $iNewIndex, $iNewIndex)
    ;~                         EndIf
    ;~                     EndIf
    
                    Case $LVN_ITEMCHANGED
                        Local $tNMLISTVIEW, $iItem, $aInfo
                        $tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
                        $iItem = DllStructGetData($tNMLISTVIEW, "Item")
                        _GUICtrlListView_SetItemSelected($hLV, $iItem, False)
                        _GUICtrlListView_SetItemState($hLV, $iItem, 0, $LVIS_FOCUSED)
    
                        Local $aInfo = GUIGetCursorInfo($hGui)
                        If $aInfo[2] Then
                            $aInfo = _GUICtrlListView_SubItemHitTest($hLV, $aInfo[0] - $iLVx, $aInfo[1] - $iLVy)
                            If $aInfo[0] > -1 And $aInfo[1] > -1 And $aInfo[0] = $iItem Then
                                If $aHit[0] > -1 Then _GUICtrlListView_RedrawItems($hLV, $aHit[0], $aHit[0])
                                If $aHit[0] <> $aInfo[0] Or $aHit[1] <> $aInfo[1] Then
                                    $aHit[0] = $aInfo[0] ; Row
                                    $aHit[1] = $aInfo[1] ; Col
                                Else
                                    $aHit[0] = -1 ; Row
                                    $aHit[1] = -1 ; Col
                                EndIf
                                _GUICtrlListView_RedrawItems($hLV, $iItem, $iItem)
                            EndIf
                        EndIf
                    Case $NM_CUSTOMDRAW
                        Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
                        Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage")
    
                        Switch $dwDrawStage                     ; Holds a value that specifies the drawing stage
    
                            Case $CDDS_PREPAINT                 ; Before the paint cycle begins
                                Return $CDRF_NOTIFYITEMDRAW     ; Notify the parent window of any ITEM-related drawing operations
    
                            Case $CDDS_ITEMPREPAINT             ; Before painting an item
                                Return $CDRF_NOTIFYSUBITEMDRAW  ; Notify the parent window of any SUBITEM-related drawing operations
    
                            Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem
                                Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") ; Item index
                                Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") ; Subitem index
                                Local $uItemState = DllStructGetData($tNMLVCUSTOMDRAW, "uItemState") ; Item state
                                If $dwItemSpec = $aHit[0] Then ; Marked row
                                    Switch $iSubItem
                                        Case 0 To 1 ; Marked column
                                            DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFFFFFF) ; Forecolor white
                                            DllStructSetData($tNMLVCUSTOMDRAW, "clrTextBk", 0xCC6600) ; Backcolor dark blue, BGR
                                        Case Else ; Other columns
                                            DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000) ; Forecolor black
                                            DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) ; Backcolor white
                                    EndSwitch
                                Else ; Other rows
                                    DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0x000000)
                                    DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF)
                                EndIf
                                Return $CDRF_NEWFONT            ; $CDRF_NEWFONT must be returned after changing font or colors
    
                        EndSwitch
    
                EndSwitch
    
        EndSwitch
    
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen

    Wichtig ist, dass nur die ersten zwei Zellen markiert bleiben.

  • ListView Ctrl+A alles selektieren

    • UEZ
    • 3. September 2023 um 14:08

    Oder so:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <WinAPIvkeysConstants.au3>
    #include <WinAPISys.au3>
    
    Opt("GUIOnEventMode", 1)
    
    Global $hGui = GUICreate("Test", 320, 240)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI_EVENT_CLOSE")
    
    Global $cLV_Test = GUICtrlCreateListView("Name", 5, 5, 310, 230, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS))
    For $i = 1 To 9
        _GUICtrlListView_AddItem($cLV_Test, "Item" & $i)
    Next
    
    GUISetState(@SW_SHOW)
    
    
    While Sleep(10)
        If BitAND(BitAND(_WinAPI_GetAsyncKeyState($VK_CONTROL), 0x8000), BitAND(_WinAPI_GetAsyncKeyState($VK_A), 0x8000)) And WinActive($hGui) Then
            ConsoleWrite("Ctrl+A was pressed" & @CRLF)
            While BitAND(BitAND(_WinAPI_GetAsyncKeyState($VK_CONTROL), 0x8000), BitAND(_WinAPI_GetAsyncKeyState($VK_A), 0x8000))
                Sleep(10)
            WEnd
        EndIf
    WEnd
    
    
    Func _GUI_EVENT_CLOSE()
        Exit
    EndFunc
    Alles anzeigen

    Edit: ich weiß nicht warum, aber "Alt Gr + A" funktioniert auch, obwohl $VK_RMENU <> $VK_CONTROL.

  • AutoIt Windows Screenshooter v1.87 Build 2026-09-01

    • UEZ
    • 21. August 2023 um 18:45

    Leider nicht. Ich melde mich, falls ich einen Lösung finde. Kann aber dauern...

  • Kicktipp Bundesliga 2023/2024 Wett-Tippen!

    • UEZ
    • 10. August 2023 um 20:16

    Letzter Aufruf - morgen fängt das Tippspiel an!

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 8. August 2023 um 14:12

    Könnt ihr bitte nochmals testen, ob soweit alles passt? Das DPI Gepöns ist eine komplizierte Sache...

    DANKE

  • Kicktipp Bundesliga 2023/2024 Wett-Tippen!

    • UEZ
    • 28. Juli 2023 um 12:52

    Die nächste Runde ist hiermit eingeläutet.

    Wer Lust und Laune hat mitzutippen, einfach https://www.kicktipp.de/autoit-bl kostenlos registrieren und lostippen. Die Teilnehmer des letzten Kicktipps, die bis zum Ende durchgehalten haben, sind wieder automatisch dabei.

    Viel Spaß beim Tippen!

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 28. Juli 2023 um 08:32

    Dann wird mir einiges klar. ;)

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 27. Juli 2023 um 21:35

    Danke für's Testen! :thumbup:

    Hast du vielleicht den ExplorerPatcher installiert?

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 27. Juli 2023 um 20:43

    BugFix Kannst du bitte mal testen, ob es bei dir funzt? Bekommst du in der Console "Error getting icon pos in taskbar"? Falls nicht, wird es wohl nicht funktionieren, da ich diesen Teil im Code noch nicht geändert habe.

    Danke

    Zitat von BugFix

    Na wie üblich per Hand:

    Männerhandarbeit - verstehe. :rofl:

    Leider fehlt auf meinem Notebook "Taskleiste fixieren". Kann sein, dass die Firma das per Policy entfernt hat.

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 27. Juli 2023 um 19:21

    BugFix wie hast du die Taskbar verschieben können?

    Ich habe es damit probiert, aber funzt nicht: https://www.tomshardware.com/how-to/windows…bar-move-to-top

    AutoIt
    $iTaskbarPos = 0
    $sRegKeyStuck = "HKEY_CURRENT_USER64\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3"
    $sRegKeyMMStuck = "HKEY_CURRENT_USER64\Software\Microsoft\Windows\CurrentVersion\Explorer\MMStuckRects3"
    $bSettings = RegRead($sRegKeyStuck, "Settings")
    $tMem = DllStructCreate("ubyte reg[" & BinaryLen($bSettings) & "]")
    $tMem.reg = $bSettings
    $tMem.reg(13) = $iTaskbarPos
    ConsoleWrite("StuckRects3: " & RegWrite($sRegKeyStuck, "Settings", "REG_BINARY", $tMem.reg) & @CRLF)
    
    For $i = 1 To 100
        $sName = RegEnumVal($sRegKeyMMStuck, $i)
        $bData = RegRead($sRegKeyMMStuck, $sName)
        If @error Then ExitLoop
        $tMem = DllStructCreate("ubyte reg[" & BinaryLen($bData) & "]")
        $tMem.reg = $bData
        $tMem.reg(13) = $iTaskbarPos
        ConsoleWrite(RegWrite($sRegKeyMMStuck, $sName, "REG_BINARY", $tMem.reg) & @CRLF)
    Next
    ConsoleWrite("Changed " & $i - 1 & " keys" & @CRLF)
    Alles anzeigen

    Nach dem Neustart von Windows Explorer wird der Key in StuckRects3 wieder auf 03 gesetzt.

    Mein BS: Windows11 22H2

    Na toll, Win11 22H2 funzt der Registry Hack nicht. Hmm, wie kann ich jetzt testen?

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 27. Juli 2023 um 13:12

    Danke BugFix , aber funktioniert die Funktion auch bei mehreren Monitoren?

    Ich will ein kleines Skript schreiben, um die Taskbar Position zu ändern. Für Muli-Monitor Umgebungen müssen einige Registry Einträge verändert werden.

  • Toolbar Desktop v0.83 build 2025-10-08 beta

    • UEZ
    • 27. Juli 2023 um 10:23

    Hi Bugfix,

    du hast die Taskleiste auf der linken Seite? Hmm, kein Wunder, dass das Fenster nicht sichtbar ist, denn die Berechnung basiert auf den Standard, d.h. die Taskleiste ist unten.

    Da muss ich noch was basteln.

    Aber du solltest im Fenster jedes Icon anklicken können, so dass diese ausgeführt wird. Mit der rechten Maustaste kannst du die App auch als Admin starten. Per Mousehover sollte der Eintrag auch markiert sein, wo sich gerade die Maus befindet.

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™