1
0
mirror of https://github.com/valinet/ExplorerPatcher.git synced 2025-02-17 11:08:41 +01:00

System tray icon improvements

This commit is contained in:
Valentin Radu 2021-10-13 06:36:30 +03:00
parent 6956b23307
commit 25d21d8ed0
4 changed files with 110 additions and 5 deletions

View File

@ -2,6 +2,13 @@
This document includes the same release notes as in the [Releases](https://github.com/valinet/ExplorerPatcher/releases) section on GitHub. This document includes the same release notes as in the [Releases](https://github.com/valinet/ExplorerPatcher/releases) section on GitHub.
## 22000.194.0.26
Tested on build: 22000.194.
* Option to open Network and Sharing Center instead if Network settings when right clicking the network icon in the system tray
* Centered network and sound right click menus and made them toggle on right click
## 22000.194.0.25 ## 22000.194.0.25
Tested on build: 22000.194. Tested on build: 22000.194.

View File

@ -51,8 +51,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 22000,194,0,25 FILEVERSION 22000,194,0,26
PRODUCTVERSION 22000,194,0,25 PRODUCTVERSION 22000,194,0,26
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -69,12 +69,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "VALINET Solutions SRL" VALUE "CompanyName", "VALINET Solutions SRL"
VALUE "FileDescription", "ExplorerPatcher" VALUE "FileDescription", "ExplorerPatcher"
VALUE "FileVersion", "22000.194.0.25" VALUE "FileVersion", "22000.194.0.26"
VALUE "InternalName", "ExplorerPatcher.dll" VALUE "InternalName", "ExplorerPatcher.dll"
VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved." VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved."
VALUE "OriginalFilename", "ExplorerPatcher.dll" VALUE "OriginalFilename", "ExplorerPatcher.dll"
VALUE "ProductName", "ExplorerPatcher" VALUE "ProductName", "ExplorerPatcher"
VALUE "ProductVersion", "22000.194.0.25" VALUE "ProductVersion", "22000.194.0.26"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -26,6 +26,8 @@
#define CHECKFOREGROUNDELAPSED_TIMEOUT 100 #define CHECKFOREGROUNDELAPSED_TIMEOUT 100
#define POPUPMENU_SAFETOREMOVE_TIMEOUT 300 #define POPUPMENU_SAFETOREMOVE_TIMEOUT 300
#define POPUPMENU_BLUETOOTH_TIMEOUT 700 #define POPUPMENU_BLUETOOTH_TIMEOUT 700
#define POPUPMENU_PNIDUI_TIMEOUT 300
#define POPUPMENU_SNDVOLSSO_TIMEOUT 300
HWND archivehWnd; HWND archivehWnd;
HMODULE hStartIsBack64 = 0; HMODULE hStartIsBack64 = 0;
@ -34,6 +36,7 @@ BOOL bMicaEffectOnTitlebar = FALSE;
BOOL bHideControlCenterButton = FALSE; BOOL bHideControlCenterButton = FALSE;
BOOL bSkinMenus = TRUE; BOOL bSkinMenus = TRUE;
BOOL bSkinIcons = TRUE; BOOL bSkinIcons = TRUE;
BOOL bReplaceNetwork = FALSE;
HMODULE hModule = NULL; HMODULE hModule = NULL;
HANDLE hIsWinXShown = NULL; HANDLE hIsWinXShown = NULL;
HANDLE hWinXThread = NULL; HANDLE hWinXThread = NULL;
@ -696,6 +699,77 @@ void PopupMenuAdjustCoordinatesAndFlags(int* x, int* y, UINT* uFlags)
*uFlags |= TPM_VCENTERALIGN | TPM_RIGHTALIGN; *uFlags |= TPM_VCENTERALIGN | TPM_RIGHTALIGN;
} }
} }
long long pnidui_TrackPopupMenuElapsed = 0;
BOOL pnidui_TrackPopupMenuHook(
HMENU hMenu,
UINT uFlags,
int x,
int y,
int nReserved,
HWND hWnd,
const RECT* prcRect
)
{
long long elapsed = milliseconds_now() - pnidui_TrackPopupMenuElapsed;
BOOL b = FALSE;
if (elapsed > POPUPMENU_PNIDUI_TIMEOUT || !bSkinMenus)
{
if (bSkinMenus)
{
PopupMenuAdjustCoordinatesAndFlags(&x, &y, &uFlags);
}
b = TrackPopupMenu(
hMenu,
uFlags | TPM_RIGHTBUTTON,
x,
y,
0,
hWnd,
prcRect
);
if (bReplaceNetwork && b == 3109)
{
ShellExecuteW(
NULL,
L"open",
L"shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}",
NULL,
NULL,
SW_SHOWNORMAL
);
b = 0;
}
pnidui_TrackPopupMenuElapsed = milliseconds_now();
}
return b;
}
long long sndvolsso_TrackPopupMenuExElapsed = 0;
BOOL sndvolsso_TrackPopupMenuExHook(
HMENU hMenu,
UINT uFlags,
int x,
int y,
HWND hWnd,
LPTPMPARAMS lptpm
)
{
long long elapsed = milliseconds_now() - sndvolsso_TrackPopupMenuExElapsed;
BOOL b = FALSE;
if (elapsed > POPUPMENU_SNDVOLSSO_TIMEOUT)
{
PopupMenuAdjustCoordinatesAndFlags(&x, &y, &uFlags);
b = TrackPopupMenuEx(
hMenu,
uFlags | TPM_RIGHTBUTTON,
x,
y,
hWnd,
lptpm
);
sndvolsso_TrackPopupMenuExElapsed = milliseconds_now();
}
return b;
}
long long TrackPopupMenuElapsed = 0; long long TrackPopupMenuElapsed = 0;
BOOL TrackPopupMenuHook( BOOL TrackPopupMenuHook(
HMENU hMenu, HMENU hMenu,
@ -1540,6 +1614,7 @@ __declspec(dllexport) DWORD WINAPI main(
} }
dwSize = sizeof(DWORD);
RegQueryValueExW( RegQueryValueExW(
hKey, hKey,
TEXT("HideExplorerSearchBar"), TEXT("HideExplorerSearchBar"),
@ -1548,6 +1623,7 @@ __declspec(dllexport) DWORD WINAPI main(
&bHideExplorerSearchBar, &bHideExplorerSearchBar,
&dwSize &dwSize
); );
dwSize = sizeof(DWORD);
RegQueryValueExW( RegQueryValueExW(
hKey, hKey,
TEXT("MicaEffectOnTitlebar"), TEXT("MicaEffectOnTitlebar"),
@ -1556,6 +1632,7 @@ __declspec(dllexport) DWORD WINAPI main(
&bMicaEffectOnTitlebar, &bMicaEffectOnTitlebar,
&dwSize &dwSize
); );
dwSize = sizeof(DWORD);
RegQueryValueExW( RegQueryValueExW(
hKey, hKey,
TEXT("HideControlCenterButton"), TEXT("HideControlCenterButton"),
@ -1564,6 +1641,7 @@ __declspec(dllexport) DWORD WINAPI main(
&bHideControlCenterButton, &bHideControlCenterButton,
&dwSize &dwSize
); );
dwSize = sizeof(DWORD);
RegQueryValueExW( RegQueryValueExW(
hKey, hKey,
TEXT("SkinMenus"), TEXT("SkinMenus"),
@ -1572,6 +1650,7 @@ __declspec(dllexport) DWORD WINAPI main(
&bSkinMenus, &bSkinMenus,
&dwSize &dwSize
); );
dwSize = sizeof(DWORD);
RegQueryValueExW( RegQueryValueExW(
hKey, hKey,
TEXT("SkinIcons"), TEXT("SkinIcons"),
@ -1580,6 +1659,15 @@ __declspec(dllexport) DWORD WINAPI main(
&bSkinIcons, &bSkinIcons,
&dwSize &dwSize
); );
dwSize = sizeof(DWORD);
RegQueryValueExW(
hKey,
TEXT("ReplaceNetwork"),
0,
NULL,
&bReplaceNetwork,
&dwSize
);
@ -1720,6 +1808,10 @@ __declspec(dllexport) DWORD WINAPI main(
HANDLE hPnidui = LoadLibraryW(L"pnidui.dll"); HANDLE hPnidui = LoadLibraryW(L"pnidui.dll");
VnPatchIAT(hPnidui, "api-ms-win-core-com-l1-1-0.dll", "CoCreateInstance", pnidui_CoCreateInstanceHook); VnPatchIAT(hPnidui, "api-ms-win-core-com-l1-1-0.dll", "CoCreateInstance", pnidui_CoCreateInstanceHook);
if (bSkinMenus || bReplaceNetwork)
{
VnPatchIAT(hPnidui, "user32.dll", "TrackPopupMenu", pnidui_TrackPopupMenuHook);
}
#ifdef USE_PRIVATE_INTERFACES #ifdef USE_PRIVATE_INTERFACES
if (bSkinIcons) if (bSkinIcons)
{ {
@ -1732,6 +1824,10 @@ __declspec(dllexport) DWORD WINAPI main(
HANDLE hSndvolsso = LoadLibraryW(L"sndvolsso.dll"); HANDLE hSndvolsso = LoadLibraryW(L"sndvolsso.dll");
if (bSkinMenus)
{
VnPatchIAT(hSndvolsso, "user32.dll", "TrackPopupMenuEx", sndvolsso_TrackPopupMenuExHook);
}
#ifdef USE_PRIVATE_INTERFACES #ifdef USE_PRIVATE_INTERFACES
if (bSkinIcons) if (bSkinIcons)
{ {

View File

@ -19,11 +19,13 @@
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Disable Control Center button * ;b Disable Control Center button *
"HideControlCenterButton"=dword:00000000 "HideControlCenterButton"=dword:00000000
;b Apply immersive style to system tray icon menus * ;b Center and skin system tray icon menus *
"SkinMenus"=dword:00000001 "SkinMenus"=dword:00000001
;p 2 ;p 2
;b Apply Windows 11 style to system tray icons * ;b Apply Windows 11 style to system tray icons *
"SkinIcons"=dword:00000001 "SkinIcons"=dword:00000001
;b Open network settings in Control Panel for system tray icon *
"ReplaceNetwork"=dword:00000000
;T File Explorer ;T File Explorer
[-HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32] [-HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32]