1
0
mirror of https://github.com/valinet/ExplorerPatcher.git synced 2024-11-27 17:00:59 +01:00

Improvements in configuration GUI

This commit is contained in:
Valentin Radu 2021-11-14 18:32:54 +02:00
parent 78cf89d15e
commit 05efe53f83
2 changed files with 278 additions and 92 deletions

View File

@ -335,7 +335,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
topAdj = dwMaxHeight + GUI_CAPTION_LINE_HEIGHT * dy;
hOldFont = SelectObject(hdcPaint, hFontCaption);
}
else if (!strncmp(line, ";u ", 3))
else if (!strncmp(line, ";u ", 3) || (!strncmp(line, ";y ", 3) && !strstr(line, "\xF0\x9F")))
{
hOldFont = SelectObject(hdcPaint, hFontUnderline);
}
@ -513,7 +513,30 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
{
if (FindWindowW(L"Shell_TrayWnd", NULL))
{
ZZRestartExplorer();
//ZZRestartExplorer(0, 0, 0, 0);
WCHAR wszPath[MAX_PATH];
ZeroMemory(wszPath, MAX_PATH * sizeof(WCHAR));
GetSystemDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\taskkill.exe");
ShellExecuteW(
NULL,
L"open",
wszPath,
L"/f /im explorer.exe",
NULL,
SW_SHOWMINIMIZED
);
GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\explorer.exe");
Sleep(1000);
ShellExecuteW(
NULL,
L"open",
wszPath,
NULL,
NULL,
SW_SHOWNORMAL
);
}
else
{
@ -669,7 +692,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
tabOrder++;
}
}
else if (!strncmp(line, ";l ", 3) || !strncmp(line, ";c ", 3) || !strncmp(line, ";b ", 3) || !strncmp(line, ";i ", 3) || !strncmp(line, ";d ", 3) || !strncmp(line, ";v ", 3))
else if (!strncmp(line, ";l ", 3) || !strncmp(line, ";y ", 3) || !strncmp(line, ";c ", 3) || !strncmp(line, ";z ", 3) || !strncmp(line, ";b ", 3) || !strncmp(line, ";i ", 3) || !strncmp(line, ";d ", 3) || !strncmp(line, ";v ", 3))
{
ZeroMemory(text, (MAX_LINE_LENGTH + 3) * sizeof(wchar_t));
text[0] = L'\u2795';
@ -678,7 +701,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
MultiByteToWideChar(
CP_UTF8,
MB_PRECOMPOSED,
!strncmp(line, ";c ", 3) ? strchr(line + 3, ' ') + 1 : line + 3,
!strncmp(line, ";c ", 3) || !strncmp(line, ";z ", 3) ? strchr(line + 3, ' ') + 1 : line + 3,
numChRd - 3,
text + 3,
MAX_LINE_LENGTH
@ -688,16 +711,17 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
if (x) *x = 0;
x = wcschr(text, L'\r');
if (x) *x = 0;
if (!strncmp(line, ";c ", 3) || !strncmp(line, ";b ", 3) || !strncmp(line, ";i ", 3) || !strncmp(line, ";d ", 3) || !strncmp(line, ";v ", 3))
if (!strncmp(line, ";c ", 3) || !strncmp(line, ";z ", 3) || !strncmp(line, ";b ", 3) || !strncmp(line, ";i ", 3) || !strncmp(line, ";d ", 3) || !strncmp(line, ";v ", 3))
{
HMENU hMenu = NULL;
BOOL bChoice = !strncmp(line, ";c ", 3);
BOOL bChoiceLefted = !strncmp(line, ";z ", 3);
BOOL bInvert = !strncmp(line, ";i ", 3);
BOOL bJustCheck = !strncmp(line, ";d ", 3);
BOOL bBool = !strncmp(line, ";b ", 3);
BOOL bValue = !strncmp(line, ";v ", 3);
DWORD numChoices = 0;
if (bChoice)
if (bChoice || bChoiceLefted)
{
char* p = strchr(line + 3, ' ');
if (p) *p = 0;
@ -764,6 +788,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
wchar_t* p = wcschr(name, L'"');
if (p) *p = 0;
HKEY hKey = NULL;
BOOL bIsHKLM = wcsstr(section, L"HKEY_LOCAL_MACHINE");
DWORD dwDisposition;
DWORD dwSize = sizeof(DWORD);
DWORD value = FALSE;
@ -779,12 +804,12 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
if (!bJustCheck)
{
RegCreateKeyExW(
HKEY_CURRENT_USER,
bIsHKLM ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_READ | (hDC ? 0 : KEY_WRITE),
KEY_READ | (hDC ? 0 : (!bIsHKLM ? KEY_WRITE : 0)),
NULL,
&hKey,
&dwDisposition
@ -809,10 +834,10 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
else
{
RegOpenKeyExW(
HKEY_CURRENT_USER,
bIsHKLM ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
REG_OPTION_NON_VOLATILE,
KEY_READ | (hDC ? 0 : KEY_WRITE),
KEY_READ | (hDC ? 0 : (!bIsHKLM ? KEY_WRITE : 0)),
&hKey
);
if (hKey == NULL || hKey == INVALID_HANDLE_VALUE)
@ -849,7 +874,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
buf
);
}
else if (bChoice)
else if (bChoice || bChoiceLefted)
{
wcscat_s(
text,
@ -881,7 +906,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
&rcTemp,
DT_CALCRECT
);
rcText.left += rcTemp.right - rcTemp.left;
rcText.left += (!bChoiceLefted ? (rcTemp.right - rcTemp.left) : 0);
for (unsigned int i = 0; i < wcslen(text); ++i)
{
text[i] = text[i + 3];
@ -901,52 +926,110 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
{
if (bJustCheck)
{
if (hKey)
if (bIsHKLM && wcsstr(section, L"Software\\Classes\\CLSID\\" _T(EP_CLSID) L"\\InprocServer32"))
{
RegCloseKey(hKey);
hKey = NULL;
RegDeleteKeyExW(
HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
REG_OPTION_NON_VOLATILE,
0
);
WCHAR wszArgs[MAX_PATH];
if (!hKey)
{
wszArgs[0] = L'\"';
SHGetFolderPathW(NULL, SPECIAL_FOLDER, NULL, SHGFP_TYPE_CURRENT, wszArgs + 1);
wcscat_s(wszArgs, MAX_PATH, _T(APP_RELATIVE_PATH) L"\\" _T(PRODUCT_NAME) L".amd64.dll\"");
}
else
{
wszArgs[0] = L'/';
wszArgs[1] = L'u';
wszArgs[2] = L' ';
wszArgs[3] = L'"';
SHGetFolderPathW(NULL, SPECIAL_FOLDER, NULL, SHGFP_TYPE_CURRENT, wszArgs + 4);
wcscat_s(wszArgs, MAX_PATH, _T(APP_RELATIVE_PATH) L"\\" _T(PRODUCT_NAME) L".amd64.dll\"");
}
wprintf(L"%s\n", wszArgs);
WCHAR wszApp[MAX_PATH * 2];
GetSystemDirectoryW(wszApp, MAX_PATH * 2);
wcscat_s(wszApp, MAX_PATH * 2, L"\\regsvr32.exe");
wprintf(L"%s\n", wszApp);
SHELLEXECUTEINFOW sei;
ZeroMemory(&sei, sizeof(SHELLEXECUTEINFOW));
sei.cbSize = sizeof(sei);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.hwnd = NULL;
sei.hInstApp = NULL;
sei.lpVerb = L"runas";
sei.lpFile = wszApp;
sei.lpParameters = wszArgs;
sei.hwnd = NULL;
sei.nShow = SW_NORMAL;
if (ShellExecuteExW(&sei) && sei.hProcess)
{
WaitForSingleObject(sei.hProcess, INFINITE);
DWORD dwExitCode = 0;
if (GetExitCodeProcess(sei.hProcess, &dwExitCode) && !dwExitCode)
{
}
else
{
}
}
else
{
DWORD dwError = GetLastError();
if (dwError == ERROR_CANCELLED)
{
}
}
}
else
{
RegCreateKeyExW(
HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hKey,
&dwDisposition
);
if (hKey == NULL || hKey == INVALID_HANDLE_VALUE)
if (hKey)
{
RegCloseKey(hKey);
hKey = NULL;
}
if (d[1] == '"')
{
wchar_t* p = wcschr(d + 2, L'"');
if (p) *p = 0;
RegSetValueExW(
hKey,
!wcsncmp(name, L"@", 1) ? NULL : name,
0,
REG_SZ,
d + 2,
wcslen(d + 2) * sizeof(wchar_t)
RegDeleteKeyExW(
bIsHKLM ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
REG_OPTION_NON_VOLATILE,
0
);
}
else
{
RegCreateKeyExW(
bIsHKLM ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
wcschr(section, L'\\') + 1,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hKey,
&dwDisposition
);
if (hKey == NULL || hKey == INVALID_HANDLE_VALUE)
{
hKey = NULL;
}
if (d[1] == '"')
{
wchar_t* p = wcschr(d + 2, L'"');
if (p) *p = 0;
RegSetValueExW(
hKey,
!wcsncmp(name, L"@", 1) ? NULL : name,
0,
REG_SZ,
d + 2,
wcslen(d + 2) * sizeof(wchar_t)
);
}
}
}
}
else
{
if (bChoice)
if (bChoice || bChoiceLefted)
{
RECT rcTemp;
rcTemp = rcText;
@ -958,7 +1041,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
DT_CALCRECT
);
POINT p;
p.x = rcText.left + rcTemp.right - rcTemp.left;
p.x = rcText.left + (bChoiceLefted ? 0 : (rcTemp.right - rcTemp.left));
p.y = rcText.bottom;
ClientToScreen(
hwnd,
@ -998,7 +1081,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
{
RegCloseKey(hKey);
}
if (bChoice)
if (bChoice || bChoiceLefted)
{
for (unsigned int i = 0; i < numChoices; ++i)
{
@ -1015,7 +1098,24 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
DestroyMenu(hMenu);
}
}
if (!hDC && !strncmp(line, ";l ", 3))
if (hDC && (!strncmp(line, ";l ", 3) || !strncmp(line, ";y ", 3)))
{
RECT rcTemp;
rcTemp = rcText;
DrawTextW(
hdcPaint,
text,
3,
&rcTemp,
DT_CALCRECT
);
rcText.left += (!strncmp(line, ";l ", 3) ? (rcTemp.right - rcTemp.left) : 0);
for (unsigned int i = 0; i < wcslen(text); ++i)
{
text[i] = text[i + 3];
}
}
if (!hDC && (!strncmp(line, ";l ", 3) || !strncmp(line, ";y ", 3)))
{
RECT rcTemp;
rcTemp = rcText;
@ -1037,14 +1137,52 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
if (p) *p = 0;
if (line[1] != 0)
{
ShellExecuteA(
NULL,
"open",
line + 1,
NULL,
NULL,
SW_SHOWNORMAL
);
if (line[1] == ';')
{
if (!strcmp(line + 2, ";EP_CHECK_FOR_UPDATES"))
{
HANDLE hEvent = CreateEventW(NULL, FALSE, FALSE, L"EP_Ev_CheckForUpdates_" _T(EP_CLSID));
if (hEvent)
{
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
CloseHandle(hEvent);
}
else
{
SetEvent(hEvent);
CloseHandle(hEvent);
}
}
}
else if(!strcmp(line + 2, ";EP_INSTALL_UPDATES"))
{
HANDLE hEvent = CreateEventW(NULL, FALSE, FALSE, L"EP_Ev_InstallUpdates_" _T(EP_CLSID));
if (hEvent)
{
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
CloseHandle(hEvent);
}
else
{
SetEvent(hEvent);
CloseHandle(hEvent);
}
}
}
}
else
{
ShellExecuteA(
NULL,
"open",
line + 1,
NULL,
NULL,
SW_SHOWNORMAL
);
}
}
}
}
@ -1379,6 +1517,13 @@ static LRESULT CALLBACK GUI_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
__declspec(dllexport) int ZZGUI(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, int nCmdShow)
{
HWND hOther = NULL;
if (hOther = FindWindowW(L"ExplorerPatcher_GUI_" _T(EP_CLSID), NULL))
{
SetForegroundWindow(hOther);
return 0;
}
HKEY hKey = NULL;
DWORD dwDisposition;
DWORD dwSize = sizeof(DWORD);
@ -1509,7 +1654,7 @@ __declspec(dllexport) int ZZGUI(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLin
wc.lpfnWndProc = GUI_WindowProc;
wc.hbrBackground = _this.hBackgroundBrush;
wc.hInstance = hModule;
wc.lpszClassName = L"ExplorerPatcherGUI";
wc.lpszClassName = L"ExplorerPatcher_GUI_" _T(EP_CLSID);
wc.hCursor = LoadCursorW(NULL, IDC_ARROW);
HMODULE hShell32 = LoadLibraryExW(wszPath, NULL, LOAD_LIBRARY_AS_DATAFILE);
if (hShell32)
@ -1569,7 +1714,7 @@ __declspec(dllexport) int ZZGUI(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLin
}
HWND hwnd = CreateWindowEx(
NULL,
L"ExplorerPatcherGUI",
L"ExplorerPatcher_GUI_" _T(EP_CLSID),
title,
WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
0,
@ -1582,6 +1727,7 @@ __declspec(dllexport) int ZZGUI(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLin
{
return 1;
}
if (IsThemeActive())
{
if (bIsCompositionEnabled)

View File

@ -4,11 +4,13 @@
;T Taskbar
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Enable Windows 10 taskbar *
;z 2 Taskbar style *
;x 0 Windows 11 (default)
;x 1 Windows 10
"OldTaskbar"=dword:00000001
;t The following settings only apply to the Windows 10 taskbar:
;l Enable missing system tray icons
;shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}\SystemIcons
;y More taskbar options in the Settings app 🡕
;ms-settings:taskbar
;t The following additional settings only apply to the Windows 10 taskbar:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;c 3 Combine taskbar icons on main taskbar
;x 0 Always combine
@ -41,11 +43,13 @@
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;b Show Desktop button
"TaskbarSD"=dword:00000001
;t
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Add shortcut to program settings in Win+X menu
"PropertiesInWinX"=dword:00000001
;t
;T System tray
;l Enable missing system tray icons
;y Enable missing system tray icons 🡕
;shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}\SystemIcons
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;b Show seconds in the clock
@ -107,29 +111,31 @@
;d Disable the Windows 11 context menu *
@=""
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;i Use immersive menus when displaying Windows 10 context menus
;i Use immersive menus when displaying Windows 10 context menus **
"DisableImmersiveContextMenu"=dword:00000000
[-HKEY_CURRENT_USER\Software\Classes\CLSID\{056440FD-8568-48e7-A632-72157243B55B}\InprocServer32]
;d Disable navigation bar
;d Disable navigation bar **
@=""
[-HKEY_CURRENT_USER\Software\Classes\CLSID\{1d64637d-31e9-4b06-9124-e83fb178ac6e}\TreatAs]
;d Disable modern search bar
@="{64bc32b5-4eec-4de7-972d-bd8bd0324537}"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Hide search bar completely
;b Hide search bar completely **
"HideExplorerSearchBar"=dword:00000000
;p 2
;b Mica effect on title bar
"MicaEffectOnTitlebar"=dword:00000000
[-HKEY_CURRENT_USER\Software\Classes\CLSID\{1eeb5b5a-06fb-4732-96b3-975c0194eb39}\InprocServer32]
;d Enable legacy list view *
@=""
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{D17F1E1A-5919-4427-8F89-A1A8503CA3EB}\InprocServer32]
;d Register as shell extension
@="{64bc32b5-4eec-4de7-972d-bd8bd0324537}"
;t ________________________
;e For the settings marked with (**) to work in Open/Save file dialogs as well, register this
;e utility as shell extension using the option above.
;y Learn more 🡕
;https://github.com/valinet/ExplorerPatcher/wiki/Using-ExplorerPatcher-as-shell-extension
;T Start menu
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Enable Start menu support
"HookStartMenu"=dword:00000001
;t The following settings only work when the above is enabled:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage]
;i Open Start on monitor containing the cursor
"MonitorOverride"=dword:00000001
@ -137,11 +143,6 @@
"OpenAtLogon"=dword:00000000
;b Open Start in All apps by default
"MakeAllAppsDefault"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;c 2 Location on screen
;x 0 Left
;x 1 Center (default)
"TaskbarAl"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;c 22 Maximum number of frequent apps to show
;x 0 None
@ -167,10 +168,16 @@
;x 20 20
;x 99999 Unlimited
"Start_MaximumFrequentApps"=dword:00000006
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;c 2 Position on screen
;x 0 Left
;x 1 Center (default)
"TaskbarAl"=dword:00000001
;T Window switcher
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
;c 3 Window switcher (Alt+Tab) style *
;z 3 Window switcher (Alt+Tab) style *
;x 0 Windows 11
;x 2 Windows 10
;x 1 Windows NT
@ -276,6 +283,7 @@
;x 500 500 ms
"ShowDelay"=dword:00000064
;T Other
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Open clock flyout when pressing Win+C instead of Microsoft Teams
@ -292,9 +300,28 @@
;b Show Command Prompt instead of PowerShell in Win+X menu *
"DontUsePowerShellOnWinX"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Remove shortcut key from menu item
;b Remove shortcut key from program settings item in Win+X menu
"NoMenuAccelerator"=dword:00000000
;T Updates
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;z 3 When File Explorer starts
;x 1 Notify about available updates (default)
;x 0 Prompt to install available updates
;x 2 Do not check for updates
"UpdatePolicy"=dword:00000001
;t ________________________
;y Check for updates
;;;EP_CHECK_FOR_UPDATES
;y Install latest version
;;;EP_INSTALL_UPDATES
;y Read about changes in the latest releases 🡕
;https://github.com/valinet/ExplorerPatcher/blob/master/CHANGELOG.md
;y Learn more 🡕
;https://github.com/valinet/ExplorerPatcher/wiki/Configure-updates
;T Advanced
;t Only change these settings if you know what you are doing. You've been warned!
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
@ -302,6 +329,18 @@
"AllocConsole"=dword:00000000
;b Dump memory leaks
"Memcheck"=dword:00000000
[HKEY_CURRENT_USER\Control Panel\Desktop]
;b Show Windows build info on the desktop *
"PaintDesktopversion"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Enable advanced mitigations for correct rendering using classic theme *
"ClassicThemeMitigations"=dword:00000000
[-HKEY_CURRENT_USER\Software\Classes\CLSID\{1eeb5b5a-06fb-4732-96b3-975c0194eb39}\InprocServer32]
;d Enable SysListView32 for Explorer views *
@=""
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;i Do not hook Start menu from main Explorer process (permanently disabled) *
"HookStartMenu"=dword:00000001
;c 12 Supplimentary delay at logon *
;x 0 None (default)
;x 300 300 ms
@ -316,14 +355,9 @@
;x 8000 8 seconds
;x 10000 10 seconds
"ExplorerReadyDelay"=dword:00000000
[HKEY_CURRENT_USER\Control Panel\Desktop]
;b Show Windows build info on the desktop *
"PaintDesktopversion"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
;b Enable advanced mitigations for correct rendering using classic theme *
"ClassicThemeMitigations"=dword:00000000
;a Only change the following option if you have a single taskbar !!!
;c 21 Always show main taskbar on this monitor * (experimental)
;c 21 Always show main taskbar on this monitor * (not working)
;x 0 Primary (default)
;x 1 1
;x 2 2
@ -346,6 +380,10 @@
;x 19 19
;x 20 20
"TaskbarMonitorOverride"=dword:00000000
;t ________________________
;e Only change these settings after reading the documentation about them.
;y Learn more 🡕
;https://github.com/valinet/ExplorerPatcher/wiki/About-advanced-settings
;T About
@ -355,14 +393,16 @@
;e
;e This project aims to bring back a productive working environment on Windows 11.
;t Proudly programmed by Valentin-Gabriel Radu.
;l Visit project GitHub (https://github.com/valinet)
;y Visit project GitHub (https://github.com/valinet) 🡕
;https://github.com/valinet
;l Visit web site (https://www.valinet.ro)
;y Visit web site (https://www.valinet.ro) 🡕
;https://www.valinet.ro
;l E-mail author (valentingabrielradu@gmail.com)
;y E-mail author (valentingabrielradu@gmail.com) 🡕
;mailto:valentingabrielradu@gmail.com
;l Donate (using PayPal)
;y Donate (using PayPal) 🡕
;https://www.paypal.com/donate?business=valentingabrielradu%40gmail.com&no_recurring=0&item_name=ExplorerPatcher&currency_code=EUR
;y Frequently Asked Questions 🡕
;https://github.com/valinet/ExplorerPatcher/wiki/Frequently-asked-questions
;f
;t Settings marked with an (*) require restarting File Explorer.