mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-23 23:21:08 +01:00
* Implemented virtualized registry access (so that complex behaviors can be employed but the existing lightweight GUI infrastructure is kept in place)
* Updated to latest sws. * Fixed compilation in debug to produce a proper setup * Updated branding for 2022.
This commit is contained in:
parent
1e4a11b6bc
commit
7ba0ba1152
33
CHANGELOG.md
33
CHANGELOG.md
@ -2,6 +2,39 @@
|
||||
|
||||
This document includes the same release notes as in the [Releases](https://github.com/valinet/ExplorerPatcher/releases) section on GitHub.
|
||||
|
||||
## 22000.348.40
|
||||
|
||||
Tested on build 22000.348.
|
||||
|
||||
#### Highlights
|
||||
|
||||
* Primary taskbar remembers position when moved to a secondary monitor (multiple issues, like #504)
|
||||
* Ability to set Control Center as network icon action (merged #492)
|
||||
* Added possibility to use the original Windows 10 (Alt-Tab) window switcher; thus, the available options are now:
|
||||
* Windows 11 switcher - full screeen, slow, tiny selection outline, slow opening times
|
||||
* Windows 10 switcher - pretty good but lacks customization options
|
||||
* Windows NT switcher - the classic simple icon-based interface hosted by `csrss`
|
||||
* Simple Window Switcher - my own take on implementing this kind of functionality
|
||||
* Registry access in the "Properties" GUI is now virtualized; that means, the same lightweight infrastructure is maintained but more complex behaviors can be offered via the improved backend; as such, this version introduces the following new configuration options:
|
||||
* Primary and secondary taskbar placement
|
||||
* Automatically hide the taskbar
|
||||
* Proper activation of the "Properties" window when another instance is running and minimized
|
||||
* Symbols parsing success notification displays for longer
|
||||
* Debug builds are clearly indicated in the "About" page of "Properties"
|
||||
* Fixed solution to properly produce a debug setup program
|
||||
|
||||
#### Simple Window Switcher
|
||||
|
||||
* Dramatically improved performance, refactored application; switched to building the window lists faster, on demand, so that the proper windows are always displayed (as far as I remember, the latest `IsAltTabWindow` is based on a function called `IsTaskedWindow` ripped straight from AltTab.dll from Windows 7 6.1.7600.16385)
|
||||
* Proper history of window activations is maintained internally
|
||||
* Implemented support for layered windows, thus making transparency possible when using the default theme (Acrylic and Mica brushes are still available, but those have the disadvantage that the system can disable them in certain scenarios, like saving energy when working on battery power)
|
||||
* Improved reliability of startup delay and window dismiss when quickly Alt-Tabbing
|
||||
* Window icons are retrieved async now
|
||||
* Better icon drawing using GDI+ flat API
|
||||
* Reversed UWP apps detection to checking whether the executable is called ApplicationFrameHost.exe
|
||||
* Added some more debug messages
|
||||
* Fixed some rendering problems when themes are disabled
|
||||
|
||||
## 22000.348.39
|
||||
|
||||
Tested on build 22000.348.
|
||||
|
@ -72,7 +72,7 @@ BEGIN
|
||||
VALUE "FileDescription", "ExplorerPatcher"
|
||||
VER_FILE_STRING
|
||||
VALUE "InternalName", "ExplorerPatcher.dll"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved."
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006-2022 VALINET Solutions SRL. All rights reserved."
|
||||
VALUE "OriginalFilename", "ExplorerPatcher.dll"
|
||||
VALUE "ProductName", "ExplorerPatcher"
|
||||
VER_PRODUCT_STRING
|
||||
|
@ -205,10 +205,15 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_IconPainter.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_RegistryMonitor.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_tshwnd.c" />
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_vector.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
@ -217,6 +222,7 @@
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_WindowHelpers.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
@ -282,7 +288,9 @@
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_def.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_error.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_IconPainter.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_RegistryMonitor.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_tshwnd.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_utility.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_vector.h" />
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_window.h" />
|
||||
|
@ -117,6 +117,12 @@
|
||||
<ClInclude Include="ImmersiveFlyouts.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_tshwnd.h">
|
||||
<Filter>Header Files\sws</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\libs\sws\SimpleWindowSwitcher\sws_IconPainter.h">
|
||||
<Filter>Header Files\sws</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="ExplorerPatcher.rc">
|
||||
@ -190,6 +196,12 @@
|
||||
<ClCompile Include="ImmersiveFlyouts.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_IconPainter.c">
|
||||
<Filter>Source Files\sws</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libs\sws\SimpleWindowSwitcher\sws_tshwnd.c">
|
||||
<Filter>Source Files\sws</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="settings.reg">
|
||||
|
@ -25,6 +25,195 @@ BOOL IsColorSchemeChangeMessage(LPARAM lParam)
|
||||
return is;
|
||||
}
|
||||
|
||||
LSTATUS GUI_RegSetValueExW(
|
||||
HKEY hKey,
|
||||
LPCWSTR lpValueName,
|
||||
DWORD Reserved,
|
||||
DWORD dwType,
|
||||
const BYTE* lpData,
|
||||
DWORD cbData
|
||||
)
|
||||
{
|
||||
if (wcsncmp(lpValueName, L"Virtualized_" _T(EP_CLSID), 50))
|
||||
{
|
||||
return RegSetValueExW(hKey, lpValueName, 0, dwType, lpData, cbData);
|
||||
}
|
||||
if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition"))
|
||||
{
|
||||
StuckRectsData srd;
|
||||
DWORD pcbData = sizeof(StuckRectsData);
|
||||
RegGetValueW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StuckRectsLegacy",
|
||||
L"Settings",
|
||||
REG_BINARY,
|
||||
NULL,
|
||||
&srd,
|
||||
&pcbData);
|
||||
if (pcbData == sizeof(StuckRectsData) && srd.pvData[0] == sizeof(StuckRectsData) && srd.pvData[1] == -2)
|
||||
{
|
||||
srd.pvData[3] = *(DWORD*)lpData;
|
||||
RegSetKeyValueW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StuckRectsLegacy",
|
||||
L"Settings",
|
||||
REG_BINARY,
|
||||
&srd,
|
||||
sizeof(StuckRectsData)
|
||||
);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
return ERROR_ACCESS_DENIED;
|
||||
}
|
||||
else if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_MMTaskbarPosition"))
|
||||
{
|
||||
HKEY hKey = NULL;
|
||||
RegOpenKeyExW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MMStuckRectsLegacy",
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_READ | KEY_WRITE,
|
||||
&hKey
|
||||
);
|
||||
if (hKey)
|
||||
{
|
||||
DWORD cValues = 0;
|
||||
RegQueryInfoKeyW(
|
||||
hKey,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&cValues,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
WCHAR name[60];
|
||||
DWORD szName = 60;
|
||||
StuckRectsData srd;
|
||||
DWORD pcbData = sizeof(StuckRectsData);
|
||||
for (int i = 0; i < cValues; ++i)
|
||||
{
|
||||
RegEnumValueW(
|
||||
hKey,
|
||||
i,
|
||||
name,
|
||||
&szName,
|
||||
0,
|
||||
NULL,
|
||||
&srd,
|
||||
&pcbData
|
||||
);
|
||||
szName = 60;
|
||||
srd.pvData[3] = *(DWORD*)lpData;
|
||||
pcbData = sizeof(StuckRectsData);
|
||||
RegSetKeyValueW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MMStuckRectsLegacy",
|
||||
name,
|
||||
REG_BINARY,
|
||||
&srd,
|
||||
sizeof(StuckRectsData)
|
||||
);
|
||||
wprintf(L"name: %s\n", name);
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
SendNotifyMessageW(HWND_BROADCAST, WM_WININICHANGE, 0, (LPARAM)L"TraySettings");
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
return ERROR_ACCESS_DENIED;
|
||||
}
|
||||
else if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_AutoHideTaskbar"))
|
||||
{
|
||||
APPBARDATA abd;
|
||||
abd.cbSize = sizeof(APPBARDATA);
|
||||
abd.lParam = *(DWORD*)lpData;
|
||||
SHAppBarMessage(ABM_SETSTATE, &abd);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
LSTATUS GUI_RegQueryValueExW(
|
||||
HKEY hKey,
|
||||
LPCWSTR lpValueName,
|
||||
LPDWORD lpReserved,
|
||||
LPDWORD lpType,
|
||||
LPBYTE lpData,
|
||||
LPDWORD lpcbData
|
||||
)
|
||||
{
|
||||
if (wcsncmp(lpValueName, L"Virtualized_" _T(EP_CLSID), 50))
|
||||
{
|
||||
return RegQueryValueExW(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);
|
||||
}
|
||||
if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_TaskbarPosition"))
|
||||
{
|
||||
StuckRectsData srd;
|
||||
DWORD pcbData = sizeof(StuckRectsData);
|
||||
RegGetValueW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StuckRectsLegacy",
|
||||
L"Settings",
|
||||
REG_BINARY,
|
||||
NULL,
|
||||
&srd,
|
||||
&pcbData);
|
||||
if (pcbData == sizeof(StuckRectsData) && srd.pvData[0] == sizeof(StuckRectsData) && srd.pvData[1] == -2)
|
||||
{
|
||||
*(DWORD*)lpData = srd.pvData[3];
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
return ERROR_ACCESS_DENIED;
|
||||
}
|
||||
else if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_MMTaskbarPosition"))
|
||||
{
|
||||
HKEY hKey = NULL;
|
||||
RegOpenKeyExW(
|
||||
HKEY_CURRENT_USER,
|
||||
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MMStuckRectsLegacy",
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_READ | KEY_WRITE,
|
||||
&hKey
|
||||
);
|
||||
if (hKey)
|
||||
{
|
||||
WCHAR name[60];
|
||||
DWORD szName = 60;
|
||||
StuckRectsData srd;
|
||||
DWORD pcbData = sizeof(StuckRectsData);
|
||||
RegEnumValueW(
|
||||
hKey,
|
||||
0,
|
||||
name,
|
||||
&szName,
|
||||
0,
|
||||
NULL,
|
||||
&srd,
|
||||
&pcbData
|
||||
);
|
||||
if (pcbData == sizeof(StuckRectsData) && srd.pvData[0] == sizeof(StuckRectsData) && srd.pvData[1] == -2)
|
||||
{
|
||||
*(DWORD*)lpData = srd.pvData[3];
|
||||
RegCloseKey(hKey);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
return ERROR_ACCESS_DENIED;
|
||||
}
|
||||
else if (!wcscmp(lpValueName, L"Virtualized_" _T(EP_CLSID) L"_AutoHideTaskbar"))
|
||||
{
|
||||
APPBARDATA abd;
|
||||
abd.cbSize = sizeof(APPBARDATA);
|
||||
*(DWORD*)lpData = (SHAppBarMessage(ABM_GETSTATE, &abd) == ABS_AUTOHIDE);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT GUI_AboutProc(
|
||||
HWND hwnd,
|
||||
UINT uNotification,
|
||||
@ -409,7 +598,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
|
||||
{
|
||||
if (!strncmp(line, ";t ", 3) || !strncmp(line, ";e ", 3) || !strncmp(line, ";a ", 3))
|
||||
{
|
||||
char* p = strstr(line, "%VERSIONINFO%");
|
||||
char* p = strstr(line, "%VERSIONINFORMATIONSTRING%");
|
||||
if (p)
|
||||
{
|
||||
DWORD dwLeftMost = 0;
|
||||
@ -419,7 +608,13 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
|
||||
|
||||
QueryVersionInfo(hModule, VS_VERSION_INFO, &dwLeftMost, &dwSecondLeft, &dwSecondRight, &dwRightMost);
|
||||
|
||||
sprintf_s(p, MAX_PATH, "%d.%d.%d.%d", dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost);
|
||||
sprintf_s(p, MAX_PATH, "%d.%d.%d.%d%s", dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost,
|
||||
#if defined(DEBUG) | defined(_DEBUG)
|
||||
" (Debug)"
|
||||
#else
|
||||
""
|
||||
#endif
|
||||
);
|
||||
}
|
||||
}
|
||||
ZeroMemory(text, (MAX_LINE_LENGTH + 3) * sizeof(wchar_t));
|
||||
@ -882,7 +1077,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
|
||||
{
|
||||
hKey = NULL;
|
||||
}
|
||||
RegQueryValueExW(
|
||||
GUI_RegQueryValueExW(
|
||||
hKey,
|
||||
name,
|
||||
0,
|
||||
@ -1080,7 +1275,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
|
||||
{
|
||||
wchar_t* p = wcschr(d + 2, L'"');
|
||||
if (p) *p = 0;
|
||||
RegSetValueExW(
|
||||
GUI_RegSetValueExW(
|
||||
hKey,
|
||||
!wcsncmp(name, L"@", 1) ? NULL : name,
|
||||
0,
|
||||
@ -1135,7 +1330,7 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
|
||||
{
|
||||
value = _this->section + 1;
|
||||
}
|
||||
RegSetValueExW(
|
||||
GUI_RegSetValueExW(
|
||||
hKey,
|
||||
name,
|
||||
0,
|
||||
|
@ -3444,6 +3444,7 @@ DWORD WindowSwitcher(DWORD unused)
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
Sleep(5000);
|
||||
sws_ReadSettings(NULL);
|
||||
if (sws_IsEnabled)
|
||||
{
|
||||
@ -3561,6 +3562,7 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
if (dwTemp)
|
||||
{
|
||||
#if defined(DEBUG) | defined(_DEBUG)
|
||||
printf("[Memcheck] Dumping memory leaks...\n");
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
|
||||
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
|
||||
@ -3568,6 +3570,7 @@ void WINAPI LoadSettings(BOOL bIsExplorer)
|
||||
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
|
||||
_CrtDumpMemoryLeaks();
|
||||
printf("[Memcheck] Memory leak dump complete.\n");
|
||||
#endif
|
||||
dwTemp = 0;
|
||||
RegSetValueExW(
|
||||
|
@ -23,16 +23,30 @@
|
||||
;;x 1 Windows 11
|
||||
;;"OrbStyle"=dword:00000000
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
|
||||
;c 3 Combine taskbar icons on main taskbar
|
||||
;c 3 Combine taskbar icons on primary taskbar
|
||||
;x 0 Always combine
|
||||
;x 1 Combine when taskbar is full
|
||||
;x 2 Never combine
|
||||
"TaskbarGlomLevel"=dword:00000002
|
||||
;c 3 Combine taskbar icons on other taskbars
|
||||
;c 3 Combine taskbar icons on secondary taskbar(s)
|
||||
;x 0 Always combine
|
||||
;x 1 Combine when taskbar is full
|
||||
;x 2 Never combine
|
||||
"MMTaskbarGlomLevel"=dword:00000002
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
|
||||
;c 4 Primary taskbar location on screen *
|
||||
;x 3 Bottom (default)
|
||||
;x 1 Top
|
||||
;x 0 Left
|
||||
;x 2 Right
|
||||
"Virtualized_{D17F1E1A-5919-4427-8F89-A1A8503CA3EB}_TaskbarPosition"=dword:00000003
|
||||
;c 4 Secondary taskbar(s) location on screen
|
||||
;x 3 Bottom (default)
|
||||
;x 1 Top
|
||||
;x 0 Left
|
||||
;x 2 Right
|
||||
"Virtualized_{D17F1E1A-5919-4427-8F89-A1A8503CA3EB}_MMTaskbarPosition"=dword:00000003
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
|
||||
;c 2 Taskbar icon size
|
||||
;x 1 Small
|
||||
;x 0 Large (default)
|
||||
@ -57,7 +71,9 @@
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
|
||||
;b Show separators between toolbars *
|
||||
"ToolbarSeparators"=dword:00000000
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
|
||||
;b Automatically hide the taskbar
|
||||
"Virtualized_{D17F1E1A-5919-4427-8F89-A1A8503CA3EB}_AutoHideTaskbar"=dword:00000000
|
||||
|
||||
;T System tray
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
|
||||
@ -212,38 +228,44 @@
|
||||
;b Show windows only from current monitor
|
||||
"PerMonitor"=dword:00000000
|
||||
;c 3 Theme
|
||||
;x 2 Mica (default)
|
||||
;x 0 Default
|
||||
;x 1 Acrylic
|
||||
;x 0 None
|
||||
"Theme"=dword:00000002
|
||||
;c 3 Corner preference
|
||||
;x 2 Rounded (default)
|
||||
;x 3 Small rounded
|
||||
;x 1 Not rounded
|
||||
"CornerPreference"=dword:00000002
|
||||
;c 3 Color scheme
|
||||
;x 0 Follow system setting (default)
|
||||
;x 1 Light
|
||||
;x 2 Dark
|
||||
"ColorScheme"=dword:00000000
|
||||
;x 2 Mica (always opaque)
|
||||
"Theme"=dword:00000000
|
||||
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MultitaskingView\AltTabViewHost]
|
||||
;c 15 Opacity (works only with 'Acrylic' theme)
|
||||
;c 19 Transparency
|
||||
;x 100 Opaque
|
||||
;x 95 95 %
|
||||
;x 98 98 %
|
||||
;x 96 96 %
|
||||
;x 95 95 % (default)
|
||||
;x 94 94 %
|
||||
;x 92 92 %
|
||||
;x 90 90 %
|
||||
;x 85 85 %
|
||||
;x 80 80 %
|
||||
;x 75 75 %
|
||||
;x 70 70 %
|
||||
;x 65 65 %
|
||||
;x 60 60 % (default)
|
||||
;x 60 60 %
|
||||
;x 55 55 %
|
||||
;x 50 50 %
|
||||
;x 45 45 %
|
||||
;x 40 40 %
|
||||
;x 35 35 %
|
||||
;x 30 30 %
|
||||
"Grid_backgroundPercent"=dword:0000003c
|
||||
"Grid_backgroundPercent"=dword:0000005F
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher\sws]
|
||||
;c 3 Color scheme
|
||||
;x 0 Follow system setting (default)
|
||||
;x 1 Light
|
||||
;x 2 Dark
|
||||
"ColorScheme"=dword:00000000
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher\sws]
|
||||
;c 3 Corner preference
|
||||
;x 2 Rounded (default)
|
||||
;x 3 Small rounded
|
||||
;x 1 Not rounded
|
||||
"CornerPreference"=dword:00000002
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher\sws]
|
||||
;c 20 Row height
|
||||
;x 330 330 pt
|
||||
@ -291,19 +313,22 @@
|
||||
;x 60 60 %
|
||||
;x 55 55 %
|
||||
"MaxHeight"=dword:00000050
|
||||
;c 10 Show delay
|
||||
;c 11 Show delay
|
||||
;x 0 None
|
||||
;x 25 25 ms
|
||||
;x 50 50 ms
|
||||
;x 75 75 ms
|
||||
;x 100 100 ms (default)
|
||||
;x 125 125 ms
|
||||
;x 150 150 ms
|
||||
;x 200 200 ms
|
||||
;x 300 300 ms
|
||||
;x 400 400 ms
|
||||
;x 500 500 ms
|
||||
"ShowDelay"=dword:00000064
|
||||
|
||||
;t ________________________
|
||||
;y Learn more about Simple Window Switcher 🡕
|
||||
;https://github.com/valinet/ExplorerPatcher/wiki/Simple-Window-Switcher
|
||||
|
||||
;T Other
|
||||
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ExplorerPatcher]
|
||||
@ -394,7 +419,7 @@
|
||||
|
||||
;T About
|
||||
;e ExplorerPatcher
|
||||
;e Version %VERSIONINFO%
|
||||
;e Version %VERSIONINFORMATIONSTRING%
|
||||
;t Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved.
|
||||
;e
|
||||
;e This project aims to bring back a productive working environment on Windows 11.
|
||||
|
@ -78,6 +78,13 @@ DEFINE_GUID(CLSID_ImmersiveShell,
|
||||
0x15, 0x63, 0x62, 0xa2, 0xf2, 0x39
|
||||
);
|
||||
|
||||
typedef struct _StuckRectsData
|
||||
{
|
||||
int pvData[6];
|
||||
RECT rc;
|
||||
POINT pt;
|
||||
} StuckRectsData;
|
||||
|
||||
#pragma region "Weird stuff"
|
||||
INT64 STDMETHODCALLTYPE nimpl4_1(INT64 a1, DWORD* a2);
|
||||
INT64 STDMETHODCALLTYPE nimpl4_0(INT64 a1, DWORD* a2);
|
||||
|
@ -72,7 +72,7 @@ BEGIN
|
||||
VALUE "FileDescription", "ExplorerPatcher Setup Program"
|
||||
VER_FILE_STRING
|
||||
VALUE "InternalName", "ep_setup.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved."
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006-2022 VALINET Solutions SRL. All rights reserved."
|
||||
VALUE "OriginalFilename", "ep_setup.exe"
|
||||
VALUE "ProductName", "ExplorerPatcher"
|
||||
VER_PRODUCT_STRING
|
||||
|
@ -159,11 +159,32 @@
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="ep_setup.rc" />
|
||||
<ResourceCompile Include="ep_setup.rc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="ep_setup_debug.rc">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\build\Release\ExplorerPatcher.amd64.dll" />
|
||||
<None Include="..\build\Release\ExplorerPatcher.IA-32.dll" />
|
||||
<None Include="..\build\Debug\ExplorerPatcher.amd64.dll">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\build\Debug\ExplorerPatcher.IA-32.dll">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\build\Release\ExplorerPatcher.amd64.dll">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\build\Release\ExplorerPatcher.IA-32.dll">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="applicat.bin" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
@ -34,6 +34,9 @@
|
||||
<ResourceCompile Include="ep_setup.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
<ResourceCompile Include="ep_setup_debug.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\build\Release\ExplorerPatcher.amd64.dll" />
|
||||
@ -41,5 +44,7 @@
|
||||
<None Include="applicat.bin">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\build\Debug\ExplorerPatcher.amd64.dll" />
|
||||
<None Include="..\build\Debug\ExplorerPatcher.IA-32.dll" />
|
||||
</ItemGroup>
|
||||
</Project>
|
111
ep_setup/ep_setup_debug.rc
Normal file
111
ep_setup/ep_setup_debug.rc
Normal file
@ -0,0 +1,111 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "winres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (United States) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""winres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
#include "..\version.h"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION VER_FILE
|
||||
PRODUCTVERSION VER_PRODUCT
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "VALINET Solutions SRL"
|
||||
VALUE "FileDescription", "ExplorerPatcher Setup Program (Debug Build)"
|
||||
VER_FILE_STRING
|
||||
VALUE "InternalName", "ep_setup.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006-2022 VALINET Solutions SRL. All rights reserved."
|
||||
VALUE "OriginalFilename", "ep_setup.exe"
|
||||
VALUE "ProductName", "ExplorerPatcher"
|
||||
VER_PRODUCT_STRING
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// RCDATA
|
||||
//
|
||||
|
||||
IDR_EP_AMD64 RCDATA "..\\build\\Debug\\ExplorerPatcher.amd64.dll"
|
||||
|
||||
IDR_EP_IA32 RCDATA "..\\build\\Debug\\ExplorerPatcher.IA-32.dll"
|
||||
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit ecbd725891f24bbdb06912f2caa98c82f0e94456
|
||||
Subproject commit 860a41c375e6278fc8c9408bd161c4114553b318
|
2
libs/sws
2
libs/sws
@ -1 +1 @@
|
||||
Subproject commit 8df71a4f41b060f5d4abad34428e91d52f895c6f
|
||||
Subproject commit f0918b0eaf79a9e72a6ee55d12bf2681eda41120
|
@ -1,7 +1,7 @@
|
||||
#define VER_MAJOR 22000
|
||||
#define VER_MINOR 348
|
||||
#define VER_BUILD_HI 39
|
||||
#define VER_BUILD_LO 2
|
||||
#define VER_BUILD_HI 40
|
||||
#define VER_BUILD_LO 0
|
||||
#define VER_FLAGS VS_FF_PRERELEASE
|
||||
|
||||
|
||||
@ -12,5 +12,5 @@
|
||||
#define VER_STR(arg) #arg
|
||||
|
||||
// The String form of the version numbers
|
||||
#define VER_FILE_STRING VALUE "FileVersion", "22000.348.39.2"
|
||||
#define VER_PRODUCT_STRING VALUE "ProductVersion", "22000.348.39.2"
|
||||
#define VER_FILE_STRING VALUE "FileVersion", "22000.348.40.0"
|
||||
#define VER_PRODUCT_STRING VALUE "ProductVersion", "22000.348.40.0"
|
||||
|
Loading…
Reference in New Issue
Block a user