AspirinJunkie Danke für die Alternative zu der Built-in Funktion _WinAPI_DisplayStruct().
Beiträge von UEZ
-
-
Als Start kannst du dies hier verwenden, um iCurrent darzustellen.
AutoIt
Alles anzeigen;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 EndFuncDies ist nur das Hintergrundbild, d.h. du müsstest noch einen drehenden Zeiger entsprechend dem $iCurrent Wert implementieren.
-
Natürlich ist das mit Autoit möglich, sogar viel einfacher, aber man will ja sein Horizont erweitern...
Danke
-
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.
-
Velted genau so habe ich mir das vorgestellt.
MERCI.
-
Gibt es eine Möglichkeit, dass die Farben in der 3 Spalte immer angezeigt werden, nicht nur bei der Selektion?
AutoIt
Alles anzeigen;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 -
Moombas kein Problem.
Was macht eigentlich die Zeile?
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).
-
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!
-
Hat jemand ein Idee, wie ich den Code erweitern kann, sodass die Selektion mit den Pfeiltasten nach oben / unten verschoben werden kann?
AutoIt
Alles anzeigen;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_NOTIFYWichtig ist, dass nur die ersten zwei Zellen markiert bleiben.
-
Oder so:
AutoIt
Alles anzeigen#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 EndFuncEdit: ich weiß nicht warum, aber "Alt Gr + A" funktioniert auch, obwohl $VK_RMENU <> $VK_CONTROL.
-
Leider nicht. Ich melde mich, falls ich einen Lösung finde. Kann aber dauern...
-
Letzter Aufruf - morgen fängt das Tippspiel an!
-
Könnt ihr bitte nochmals testen, ob soweit alles passt? Das DPI Gepöns ist eine komplizierte Sache...
DANKE
-
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!
-
Dann wird mir einiges klar.

-
Danke für's Testen!

Hast du vielleicht den ExplorerPatcher installiert?
-
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
Na wie üblich per Hand:
Männerhandarbeit - verstehe.

Leider fehlt auf meinem Notebook "Taskleiste fixieren". Kann sein, dass die Firma das per Policy entfernt hat.
-
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
Alles anzeigen$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)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?
-
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.
-
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.