excel8
Freshman Member
Posts: 37
OS: Windows 10 22H2
|
Post by excel8 on Nov 21, 2023 17:46:20 GMT -8
It doesn't work for me, and I have classic theme enabled
I'm in Windows 10 22H2
Patch OpenShell. I assume it's Travis' open shell patch right? If so this is how it look like now now we're getting somewhere
|
|
excel8
Freshman Member
Posts: 37
OS: Windows 10 22H2
|
Post by excel8 on Nov 21, 2023 17:50:27 GMT -8
nvm, I got it working with the explorer patcher mitigations, thank you anyway anixx!
|
|
rnk
Freshman Member
Posts: 29
|
Post by rnk on Jan 1, 2024 12:15:53 GMT -8
Great, I can uninstall taskbow now is there any way to fix the program preview?
|
|
|
Post by anixx on Jan 2, 2024 2:57:06 GMT -8
Great, I can uninstall taskbow now is there any way to fix the program preview? I simply disable it using 7+TT
|
|
|
Post by s34642542 on Jan 30, 2024 8:07:36 GMT -8
I gave this mod another go last night, and wanted to highlight some things.
- Clicking the very bottom of the taskbar doesn't activate taskbar items, the start button, or items in the tray. I remember this problem existing in 8.1, and I was able to fix it by unlocking the taskbar (for some reason, this meant that clicking the very bottom did activate those things).
- The taskbar is too small on the second monitor and doesn't look right. Again, this has been a longstanding problem, and I know many on this site only show it on one monitor (as was the case in Windows 7 and before), but it would be great if it would work properly on the second taskbar.
|
|
|
Post by anixx on Feb 4, 2024 4:55:09 GMT -8
This variant should support visual styles, please test: {Spoiler}
// ==WindhawkMod== // @id classic-taskbar-buttons-lite // @name Classic Taskbar 3D buttons Lite // @description Lightweight mod, restoring the 3D buttons in classic theme // @version 1.1.1 // @author Anixx // @include explorer.exe // @compilerOptions -lgdi32 -lUxTheme // ==/WindhawkMod==
// ==WindhawkModReadme== /* # Classic Taskbar Fix Restores 3D buttons on taskbar when using Windows Classic theme. Based on mod by Aubymori (https://github.com/aubymori). */ // ==/WindhawkModReadme==
#include <windhawk_utils.h> #include <windows.h> #include <uxtheme.h> #include <tmschema.h>
typedef struct tagBUTTONRENDERINFOSTATES { char data[12]; } BUTTONRENDERINFOSTATES, *PBUTTONRENDERINFOSTATES;
/* Remove clock hover effect */ typedef void (* GDIHelpers_FillRectARGB_t)(HDC, LPCRECT, BYTE, DWORD, bool); GDIHelpers_FillRectARGB_t GDIHelpers_FillRectARGB_orig; void __cdecl GDIHelpers_FillRectARGB_hook( HDC hDC, LPCRECT lprc, BYTE btUnknown, DWORD dwUnknown, bool bUnknown ) { return; }
/* Draw taskbar item */ typedef void (* CTaskBtnGroup__DrawBar_t)(void *, HDC, void *, void *); CTaskBtnGroup__DrawBar_t CTaskBtnGroup__DrawBar_orig; void __cdecl CTaskBtnGroup__DrawBar_hook( void *pThis, HDC hDC, void *pRenderInfo, PBUTTONRENDERINFOSTATES pRenderStates ) { LPRECT lprcDest = (LPRECT)((char *)pRenderInfo + 4);
HTHEME hTheme = OpenThemeData(NULL, L"BUTTON");
if (hTheme) { int iStateId = PBS_NORMAL;
if (pRenderStates->data[2]) {
iStateId = PBS_PRESSED; // or use PBS_HOT if you prefer
} else if (pRenderStates->data[4]) {
iStateId = PBS_PRESSED;
}
// Draw the button with the current theme.
DrawThemeBackground(hTheme, hDC, BP_PUSHBUTTON, iStateId, lprcDest, NULL);
// Close the theme data handle when done.
CloseThemeData(hTheme); } else { // Fallback to non-themed drawing if themes are not available.
UINT uState = DFCS_BUTTONPUSH; if (pRenderStates->data[2]) { uState |= DFCS_CHECKED; } else if (pRenderStates->data[4]) { uState |= DFCS_PUSHED; }
DrawFrameControl(hDC, lprcDest, DFC_BUTTON, uState); };
/* If button is pushed in, offset the rect for the icon and text draw */ if (pRenderStates->data[2] || pRenderStates->data[4]) { lprcDest->top++; lprcDest->bottom++; lprcDest->left++; lprcDest->right++; }
return; }
/* Add spacing between taskbar items */ typedef long (* CTaskBtnGroup_SetLocation_t)(void *, int, int, LPRECT); CTaskBtnGroup_SetLocation_t CTaskBtnGroup_SetLocation_orig; long __cdecl CTaskBtnGroup_SetLocation_hook( void *pThis, int i1, int i2, LPRECT lprc ) { APPBARDATA ab; ab.cbSize=sizeof(APPBARDATA); if(SHAppBarMessage(ABM_GETTASKBARPOS, &ab)) { if ((ab.uEdge==ABE_BOTTOM)||(ab.uEdge==ABE_TOP)){ lprc->right-=2; } } return CTaskBtnGroup_SetLocation_orig(pThis, i1, i2, lprc); }
BOOL Wh_ModInit(void) { HMODULE hExplorer = GetModuleHandleW(NULL);
WindhawkUtils::SYMBOL_HOOK hooks[] = { { { L"void __cdecl GDIHelpers::FillRectARGB(struct HDC__ *,struct tagRECT const *,unsigned char,unsigned long,bool)" }, (void **)&GDIHelpers_FillRectARGB_orig, (void *)GDIHelpers_FillRectARGB_hook, FALSE }, { { L"private: void __cdecl CTaskBtnGroup::_DrawBar(struct HDC__ *,struct BUTTONRENDERINFO const &,struct BUTTONRENDERINFOSTATES const &)" }, (void **)&CTaskBtnGroup__DrawBar_orig, (void *)CTaskBtnGroup__DrawBar_hook, FALSE },
{ { L"public: virtual long __cdecl CTaskBtnGroup::SetLocation(int,int,struct tagRECT const *)" }, (void **)&CTaskBtnGroup_SetLocation_orig, (void*)CTaskBtnGroup_SetLocation_hook, FALSE } };
if (!WindhawkUtils::HookSymbols(hExplorer, hooks, ARRAYSIZE(hooks))) { Wh_Log(L"Failed to hook one or more functions"); return FALSE; }
return TRUE; }
|
|
|
Post by anixx on Feb 4, 2024 9:42:32 GMT -8
|
|
|
Post by anixx on Feb 8, 2024 4:26:12 GMT -8
TASKBOW IS DEAD! LONG LIVE TASKBAND2! Any chance you publish this in Windhawk repo?
|
|
|
Post by OrthodoxWin32 on Feb 12, 2024 0:51:30 GMT -8
Since the correction of the "Classic explorer mitigations" dmos (it now works with hidden labels), I noticed a bug with hidden labels in this mod.
If launched after the Classic Explorer Mitigations mod, the display is correct : If launched at the same time as the Classic Explorer Mitigations mod, the icons become too spaced out, and disappear when highlighted :
|
|
|
Post by OrthodoxWin32 on Feb 17, 2024 4:28:13 GMT -8
Since the correction of the "Classic explorer mitigations" dmos (it now works with hidden labels), I noticed a bug with hidden labels in this mod.
If launched after the Classic Explorer Mitigations mod, the display is correct : If launched at the same time as the Classic Explorer Mitigations mod, the icons become too spaced out, and disappear when highlighted : I fixed the problem by removing the section of code responsible for icon spacing :
// ==WindhawkMod== // @id classic-taskbar-buttons-lite-vs-fork // @name Classic Taskbar 3D buttons Lite VS - Fork // @description Lightweight mod, restoring the 3D buttons in classic theme // @version 1.1.1 // @author Anixx // @include explorer.exe // @compilerOptions -lgdi32 -lUxTheme // ==/WindhawkMod==
// ==WindhawkModReadme== /*...*/ // ==/WindhawkModReadme==
#include <windhawk_utils.h> #include <windows.h> #include <uxtheme.h> #include <tmschema.h>
typedef struct tagBUTTONRENDERINFOSTATES { char data[12]; } BUTTONRENDERINFOSTATES, *PBUTTONRENDERINFOSTATES;
/* Remove clock hover effect */ typedef void (* GDIHelpers_FillRectARGB_t)(HDC, LPCRECT, BYTE, DWORD, bool); GDIHelpers_FillRectARGB_t GDIHelpers_FillRectARGB_orig; void __cdecl GDIHelpers_FillRectARGB_hook( HDC hDC, LPCRECT lprc, BYTE btUnknown, DWORD dwUnknown, bool bUnknown ) { return; }
/* Draw taskbar item */ typedef void (* CTaskBtnGroup__DrawBar_t)(void *, HDC, void *, void *); CTaskBtnGroup__DrawBar_t CTaskBtnGroup__DrawBar_orig; void __cdecl CTaskBtnGroup__DrawBar_hook( void *pThis, HDC hDC, void *pRenderInfo, PBUTTONRENDERINFOSTATES pRenderStates ) { LPRECT lprcDest = (LPRECT)((char *)pRenderInfo + 4);
HTHEME hTheme = OpenThemeData(NULL, L"BUTTON");
if (hTheme) { int iStateId = PBS_NORMAL;
if (pRenderStates->data[2]) {
iStateId = PBS_PRESSED; // or use PBS_HOT if you prefer
} else if (pRenderStates->data[4]) {
iStateId = PBS_PRESSED;
}
// Draw the button with the current theme.
DrawThemeBackground(hTheme, hDC, BP_PUSHBUTTON, iStateId, lprcDest, NULL);
// Close the theme data handle when done.
CloseThemeData(hTheme); } else { // Fallback to non-themed drawing if themes are not available.
UINT uState = DFCS_BUTTONPUSH; if (pRenderStates->data[2]) { uState |= DFCS_CHECKED; } else if (pRenderStates->data[4]) { uState |= DFCS_PUSHED; }
DrawFrameControl(hDC, lprcDest, DFC_BUTTON, uState); };
/* If button is pushed in, offset the rect for the icon and text draw */ if (pRenderStates->data[2] || pRenderStates->data[4]) { lprcDest->top++; lprcDest->bottom++; lprcDest->left++; lprcDest->right++; }
return; }
BOOL Wh_ModInit(void) { HMODULE hExplorer = GetModuleHandleW(NULL);
WindhawkUtils::SYMBOL_HOOK hooks[] = { { { L"void __cdecl GDIHelpers::FillRectARGB(struct HDC__ *,struct tagRECT const *,unsigned char,unsigned long,bool)" }, (void **)&GDIHelpers_FillRectARGB_orig, (void *)GDIHelpers_FillRectARGB_hook, FALSE }, { { L"private: void __cdecl CTaskBtnGroup::_DrawBar(struct HDC__ *,struct BUTTONRENDERINFO const &,struct BUTTONRENDERINFOSTATES const &)" }, (void **)&CTaskBtnGroup__DrawBar_orig, (void *)CTaskBtnGroup__DrawBar_hook, FALSE }, };
if (!WindhawkUtils::HookSymbols(hExplorer, hooks, ARRAYSIZE(hooks))) { Wh_Log(L"Failed to hook one or more functions"); return FALSE; }
return TRUE; }
|
|
|
Post by anixx on Feb 17, 2024 5:13:30 GMT -8
After your change, there is no space between buttons
|
|
|
Post by OrthodoxWin32 on Feb 17, 2024 6:06:44 GMT -8
After your change, there is no space between buttons I noticed. The problem is that while the space between the icons behaves correctly with the displayed labels, it creates a issue with the hidden labels (icons disappear when highlighted).
|
|
|
Post by anixx on Feb 17, 2024 8:25:27 GMT -8
After your change, there is no space between buttons I noticed. The problem is that while the space between the icons behaves correctly with the displayed labels, it creates a issue with the hidden labels (icons disappear when highlighted). It seems, the second hook (for spaces between buttons) is not needed at all.
Try this lightweight mod (I've submitted it to the repo):
{Spoiler}
// ==WindhawkMod== // @id classic-taskbar-buttons-lite // @name Classic Taskbar 3D buttons Lite // @description Lightweight mod, restoring the 3D buttons in classic theme // @version 1.2 // @author Anixx // @include explorer.exe // @compilerOptions -lgdi32 // ==/WindhawkMod==
// ==WindhawkModReadme== /* # Classic Taskbar Fix Lightweight mod which restores 3D buttons on taskbar when using Windows Classic theme. The idea is based on the mod by Aubymori (https://github.com/aubymori).
Before:
![Before](https://i.imgur.com/jupSjfl.png)
After:
![After](https://i.imgur.com/Jz4EkRQ.png)
*/ // ==/WindhawkModReadme==
#include <windhawk_utils.h>
typedef struct tagBUTTONRENDERINFOSTATES { char data[12]; } BUTTONRENDERINFOSTATES, *PBUTTONRENDERINFOSTATES;
/* Draw taskbar item */ typedef void (* CTaskBtnGroup__DrawBar_t)(void *, HDC, void *, void *); CTaskBtnGroup__DrawBar_t CTaskBtnGroup__DrawBar_orig; void __cdecl CTaskBtnGroup__DrawBar_hook( void *pThis, HDC hDC, void *pRenderInfo, PBUTTONRENDERINFOSTATES pRenderStates ) { LPRECT lprcDest = (LPRECT)((char *)pRenderInfo + 4);
UINT uState = DFCS_BUTTONPUSH; if (pRenderStates->data[2]) { uState |= DFCS_CHECKED; } else if (pRenderStates->data[4]) { uState |= DFCS_PUSHED; } lprcDest->left++; lprcDest->right--;
DrawFrameControl( hDC, lprcDest, DFC_BUTTON, uState );
/* If button is pushed in, offset the rect for the icon and text draw */ if (pRenderStates->data[2] || pRenderStates->data[4]) { lprcDest->top++; lprcDest->bottom++; lprcDest->left++; lprcDest->right++; }
return; }
BOOL Wh_ModInit(void) { HMODULE hExplorer = GetModuleHandleW(NULL);
WindhawkUtils::SYMBOL_HOOK hooks[] = { { { L"private: void __cdecl CTaskBtnGroup::_DrawBar(struct HDC__ *,struct BUTTONRENDERINFO const &,struct BUTTONRENDERINFOSTATES const &)" }, (void **)&CTaskBtnGroup__DrawBar_orig, (void *)CTaskBtnGroup__DrawBar_hook, FALSE },
};
if (!WindhawkUtils::HookSymbols(hExplorer, hooks, ARRAYSIZE(hooks))) { Wh_Log(L"Failed to hook one or more functions"); return FALSE; }
return TRUE; }
|
|
|
Post by OrthodoxWin32 on Feb 17, 2024 13:17:25 GMT -8
It seems, the second hook (for spaces between buttons) is not needed at all.
Try this lightweight mod (I've submitted it to the repo):
{Spoiler}
// ==WindhawkMod== // @id classic-taskbar-buttons-lite // @name Classic Taskbar 3D buttons Lite // @description Lightweight mod, restoring the 3D buttons in classic theme // @version 1.2 // @author Anixx // @include explorer.exe // @compilerOptions -lgdi32 // ==/WindhawkMod==
// ==WindhawkModReadme== /* # Classic Taskbar Fix Lightweight mod which restores 3D buttons on taskbar when using Windows Classic theme. The idea is based on the mod by Aubymori (https://github.com/aubymori).
Before:
![Before](https://i.imgur.com/jupSjfl.png)
After:
![After](https://i.imgur.com/Jz4EkRQ.png)
*/ // ==/WindhawkModReadme==
#include <windhawk_utils.h>
typedef struct tagBUTTONRENDERINFOSTATES { char data[12]; } BUTTONRENDERINFOSTATES, *PBUTTONRENDERINFOSTATES;
/* Draw taskbar item */ typedef void (* CTaskBtnGroup__DrawBar_t)(void *, HDC, void *, void *); CTaskBtnGroup__DrawBar_t CTaskBtnGroup__DrawBar_orig; void __cdecl CTaskBtnGroup__DrawBar_hook( void *pThis, HDC hDC, void *pRenderInfo, PBUTTONRENDERINFOSTATES pRenderStates ) { LPRECT lprcDest = (LPRECT)((char *)pRenderInfo + 4);
UINT uState = DFCS_BUTTONPUSH; if (pRenderStates->data[2]) { uState |= DFCS_CHECKED; } else if (pRenderStates->data[4]) { uState |= DFCS_PUSHED; } lprcDest->left++; lprcDest->right--;
DrawFrameControl( hDC, lprcDest, DFC_BUTTON, uState );
/* If button is pushed in, offset the rect for the icon and text draw */ if (pRenderStates->data[2] || pRenderStates->data[4]) { lprcDest->top++; lprcDest->bottom++; lprcDest->left++; lprcDest->right++; }
return; }
BOOL Wh_ModInit(void) { HMODULE hExplorer = GetModuleHandleW(NULL);
WindhawkUtils::SYMBOL_HOOK hooks[] = { { { L"private: void __cdecl CTaskBtnGroup::_DrawBar(struct HDC__ *,struct BUTTONRENDERINFO const &,struct BUTTONRENDERINFOSTATES const &)" }, (void **)&CTaskBtnGroup__DrawBar_orig, (void *)CTaskBtnGroup__DrawBar_hook, FALSE },
};
if (!WindhawkUtils::HookSymbols(hExplorer, hooks, ARRAYSIZE(hooks))) { Wh_Log(L"Failed to hook one or more functions"); return FALSE; }
return TRUE; }
I still have the issue with hidden labels. I get this :
By removing the space between the icons, the issue disappears (these are my previous edits) :
|
|
|
Post by anixx on Feb 17, 2024 14:00:47 GMT -8
It seems, the second hook (for spaces between buttons) is not needed at all.
Try this lightweight mod (I've submitted it to the repo): I still have the issue with hidden labels. I get this :
By removing the space between the icons, the issue disappears (these are my previous edits) :
Maybe, the icons simply do not fit the space? Try smaller icons maybe?
|
|
|
Post by OrthodoxWin32 on Feb 17, 2024 14:38:10 GMT -8
Maybe, the icons simply do not fit the space? Try smaller icons maybe? The issue is the same with small icons. The problem is twofold: the icons overtake the buttons, and they disappear when highlighted. There is no issue with the labels displayed (whether small or large icons).
|
|
|
Post by anixx on Feb 17, 2024 14:47:38 GMT -8
How do you get labels disabled?
|
|
|
Post by OrthodoxWin32 on Feb 17, 2024 16:14:27 GMT -8
How do you get labels disabled? With the "Combine buttons" parameter set to "Always, hide labels".
|
|
|
Post by anixx on Feb 17, 2024 16:21:17 GMT -8
How do you get labels disabled? With the "Combine buttons" parameter set to "Always, hide labels". Where is it? In what program?
|
|
AnyKey
Sophomore Member
Posts: 248
OS: Windows 10 Pro 22H2
Theme: XP Classic Theme
CPU: AMD Ryzen 7 3700X
RAM: 16 GB 1333 MHz DDR4
GPU: Nvidia Geforce RTX 2070 Super
|
Post by AnyKey on Feb 17, 2024 16:38:17 GMT -8
With the "Combine buttons" parameter set to "Always, hide labels". Where is it? In what program? You can do that in Settings app.
|
|