|
Post by he3als on Nov 21, 2021 3:38:32 GMT -8
I am having this issue where my taskbar is lower than usual on my second monitor compared to my first monitor. How could I fix this?
I would prefer to not use RetroBar or another alternative as I can not get the behavior of the taskbar pinning apps and making open apps go under the pinned apps without titles on the taskbar.
|
|
crumble266
Freshman Member
Posts: 26
OS: Win10 LTSC 2021 (21H2)
CPU: i7-4790
RAM: 32GB
GPU: GTX 1060
|
Post by crumble266 on Jan 18, 2024 13:46:54 GMT -8
I think i have the same problem. Secondary taskbars are not the correct height.
Here a regular one row taskbar with small icons, set at top :
two rows :
one row without classic-taskbar-fix :
|
|
iliketoeatglass
New Member
Posts: 9
OS: Windows 10 Professional
Theme: Windows classic (custom scheme, used in my signature)
CPU: AMD Ryzen 5 5600 6-Core Processor
RAM: 16 GB
GPU: Dollarstore GPU (Bad)
|
Post by iliketoeatglass on Oct 6, 2024 21:12:24 GMT -8
Same issue, here too. Only difference for me is, that the system tray area is black.
|
|
|
Post by iwantlibrariesheader on Oct 7, 2024 14:51:06 GMT -8
I think that's just a common issues with themes like this, Happens when using the WinXP theme aswell
|
|
|
Post by lunderg on Oct 7, 2024 15:58:44 GMT -8
Same here using Classic theme / High contrast theme / Aerolite theme but it can be fixed as I discovered today. I just need the help of some Autoit expert in the forum. I've found today some way it can be manually fixed!: [FIX 1] 1) Download HMW – Hide my Windows funk.eu/hmw/ 2) Check "Filter on Windows" -> "All" 3) Search for Window Title="Shell_SecondaryTrayWnd" and process="explorer.exe", select this row then copy InitialPosition and InitialSize columns values. 4) Now, with the row still selected, click on "Move" button, paste both size and position from the columns above and modify it to the desired size and width. 5) Click on "Topmost" 6) Apply changes, then run (Windows+R): ie4uinit.exe -ClearIconCache For 1920x1080 resolution, the new position and size will be something like: -1922x1044 => -1922x1039 [Position X/Y] 1924x38 changed to 1924x46 [Width/Height] _ Ofc this can be automated, we just need an autoit / autohotkey .exe command line utility that can do this: 1) Searches for each "Shell_SecondaryTrayWnd" class opened (secondary explorer taskbar) 2) Adds the remaining pixels to be the size of the main taskbar (considering if it's small or large icon taskbar size) (main monitor) 3) Moves up the taskbar some pixels (the added pixels will be added at the bottom) like: $hWnd = HWnd(_GUICtrlListView_GetItemText($hListView, $aSelected[$i], 4)) _WinAPI_SetWindowPos($hWnd, $HWND_NOTOPMOST, $iValue_X, $iValue_Y, $iValue_W, $iValue_H, $SWP_NOSENDCHANGING) 4) Does the "ie4uinit.exe -ClearIconCache" _ The same can be done using Hawkeye ShellInit ( www.majorgeeks.com/files/details/hawkeye_shellinit.html ) and save it: [FIX 2] 1) Position Window, *, Shell_SecondaryTrayWnd, -1922, 1039, 1924, 46 2) On Top, *, Shell_SecondaryTrayWnd, True 3) Win+R: ie4uinit.exe -ClearIconCache _ [FIX 3] 1) WinSpy++ and search for explorer.exe, then righ click on "Shell_SecondaryTrayWnd" -> "Adjust position" -> Move up some pixels and add some height 2) Win+R: ie4uinit.exe -ClearIconCache _ If somebody can help us to automate this creating a simple autoit utility: Autoit HMW – Hide my Windows source code is here: funk.eu/wp-content/plugins/download-monitor/download.php?id=242 I've found this is the function called when I click on "Move button": Func _Window_Set_Selected_Positions()
If _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
GUISetState(@SW_DISABLE, $hGui)
GUISetState(@SW_SHOW, $hGui_Set_WindowPos)
$s_Move_Command = ""
Local $bSuccess = True, $iValue_X, $iValue_Y, $iValue_W, $iValue_H
While Sleep(10)
If $s_Move_Command = "Move" Then
$s_Move_Command = ""
$iValue_X = Number(GUICtrlRead($c_Move_Input_X))
$iValue_Y = Number(GUICtrlRead($c_Move_Input_Y))
$iValue_W = Number(GUICtrlRead($c_Move_Input_W))
$iValue_H = Number(GUICtrlRead($c_Move_Input_H))
If Not (IsInt($iValue_X) And ($iValue_X > -32001 And $iValue_X < 32001)) Then
GUICtrlSetData($c_Move_Input_X, 100)
$bSuccess = False
EndIf
If Not (IsInt($iValue_Y) And ($iValue_Y > -32001 And $iValue_Y < 32001)) Then
GUICtrlSetData($c_Move_Input_Y, 100)
$bSuccess = False
EndIf
If Not (IsInt($iValue_W) And ($iValue_W > 0 And $iValue_W < 9999)) Then
GUICtrlSetData($c_Move_Input_W, 300)
$bSuccess = False
EndIf
If Not (IsInt($iValue_H) And ($iValue_H > 0 And $iValue_H < 9999)) Then
GUICtrlSetData($c_Move_Input_H, 300)
$bSuccess = False
EndIf
; ConsoleWrite($iValue_X & "x" & $iValue_Y & @TAB & $iValue_W & "x" & $iValue_H & @CRLF)
If $bSuccess Then ExitLoop
ElseIf $s_Move_Command = "Cancel" Then
GUISetState(@SW_HIDE, $hGui_Set_WindowPos)
GUISetState(@SW_ENABLE, $hGui)
Return
EndIf
WEnd
GUISetState(@SW_HIDE, $hGui_Set_WindowPos)
GUISetState(@SW_ENABLE, $hGui)
Local $aSelected = _GUICtrlListView_GetSelectedIndices($hListView, True), $hWnd
For $i = $aSelected[0] To 1 Step -1
$hWnd = HWnd(_GUICtrlListView_GetItemText($hListView, $aSelected[$i], 4))
_WinAPI_SetWindowPos($hWnd, $HWND_NOTOPMOST, $iValue_X, $iValue_Y, $iValue_W, $iValue_H, $SWP_NOSENDCHANGING)
_Check_UAC_WinAPI_Success(_WinAPI_GetLastError(), $hWnd)
Next
$i_LV_Sort_Direction = Not $i_LV_Sort_Direction
_LV_Buffer_Fill($i_Radio_Current_Selection)
_LV_Populate_from_Buffer()
EndIf
EndFunc ;==>_Window_Set_Selected_Positions
|
|
|
Post by lunderg on Oct 8, 2024 9:43:53 GMT -8
I've created an AutoHotkey based FIX for Hight contrast theme / Aerolite / Classictheme. See attachments at the end of the post. Multimonitor explorer.exe 7779 taskbar running without METRO tested on Windows 8.0 with large icons taskbar + ex7forw8 (2012 version) with custom wrp64: [Moves and resizes both secondary taskbars to the correct size so the icons are displayed correctly] Autohotkey version 2:
GroupAdd "TaskBar", "ahk_class Shell_SecondaryTrayWnd"
TaskbarX := 0, TaskbarY := 0,TaskbarW := 0,TaskbarH := 0
TaskBars := WinGetList("ahk_group TaskBar")
for TaskBar in TaskBars
{
WinGetPos(&TaskbarX,&TaskbarY,&TaskbarW,&TaskbarH,Taskbar)
WinMove(TaskbarX,TaskbarY-5,TaskbarW,46,TaskBar)
}
[Disables/Prevents default mouse left click action on secondary taskbar so it's not automatically resized to the wrong initial size by mistake ] #NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#If MouseIsOver("Shell_SecondaryTrayWnd")
$LButton::
MouseGetPos,X,Y,Win,Contr
If (Contr != "MSTaskListWClass")
Send, {LButton}
return
#If
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
Return WinExist("ahk_class " WinTitle . " ahk_id " . Win)
} #NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#If MouseIsOver("Shell_SecondaryTrayWnd")
$LButton::
MouseGetPos,X,Y,Win,Contr
If (Contr != "MSTaskListWClass")
Send, {LButton}
return
#If
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
Return WinExist("ahk_class " WinTitle . " ahk_id " . Win)
}
|
|
|
Post by lunderg on Oct 14, 2024 5:53:51 GMT -8
Thanks to @orthodoxwin32 If you edit explorer.exe manifest with Resource Hacker adding part of these lines, it will draw explorer taskbar with Aero Lite theme so the AHW Mod isn't needed: you will get right screenshot explorer without the manifest and ofc the left one if you update the manifest this was tested in high contrast theme <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
this info can be found at learn.microsoft.com/en-us/windows/win32/controls/supporting-high-contrast-themes Explorer manifest modified: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Microsoft.Windows.Shell.explorer"
processorArchitecture="amd64"
version="5.1.0.0"
type="win32"/>
<description>Windows Shell</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
Anyway, since I don't know if this will work with classic theme too, I've found another alternative if you don't want to update the manifest: NirCmd can move and resize any window, just use: nircmd.exe win setsize title posX posY width height as I've read in StackOverFlow, you can made your own .bat with these tools to get,move,resize any window PID: Tools: 1. MonitorInfoView by Nir Sofer 2. NirCmd by Nir Sofer 3. GetPIDs by Daniel Scheibli 4. A command-line program stackoverflow.com/questions/10392620/how-can-a-batch-file-run-a-program-and-set-the-position-and-size-of-the-window
|
|