Browse Source

22000.318.38.1: Fixed #410

pull/492/head 22000.318.38.1_033ad03
Valentin Radu 4 years ago
parent
commit
033ad034d5
  1. 6
      CHANGELOG.md
  2. 21
      ExplorerPatcher/dllmain.c
  3. 6
      version.h

6
CHANGELOG.md

@ -11,7 +11,7 @@ Tested on build 22000.318 and 22000.346 (currently in Windows Insider beta and r
* Functional Windows 10 network flyout * Functional Windows 10 network flyout
* Functional Windows 10 battery flyout * Functional Windows 10 battery flyout
* Implemented support for Windows 7 battery flyout (#274) * Implemented support for Windows 7 battery flyout (#274)
* Implemented `/extract` switch which unpacks the files from `ep_setup.exe` to disk (#396): * Implemented `/extract` switch which unpacks the files from `ep_setup.exe` to disk (#396) (.1):
* `ep_setup /extract` - extracts `ExplorerPatcher.IA-32.dll` and `ExplorerPatcher.amd64.dll` to current directory * `ep_setup /extract` - extracts `ExplorerPatcher.IA-32.dll` and `ExplorerPatcher.amd64.dll` to current directory
* `ep-setup /extract test` - extracts to `test` folder in current directory * `ep-setup /extract test` - extracts to `test` folder in current directory
* `ep-setup /extract "C:\test with space"` - extracts to `C:\test with space` directory * `ep-setup /extract "C:\test with space"` - extracts to `C:\test with space` directory
@ -22,6 +22,10 @@ Tested on build 22000.318 and 22000.346 (currently in Windows Insider beta and r
* Improved reliability when invoking Control Center (`Win`+`A`) when the taskbar icon is disabled (the icon should now not reappear anymore sometimes) (#242) * Improved reliability when invoking Control Center (`Win`+`A`) when the taskbar icon is disabled (the icon should now not reappear anymore sometimes) (#242)
* Small reorganization of some options in "Properties" * Small reorganization of some options in "Properties"
#### Fixes
* Windows 10 network and battery flyout should now always launch when the tray icon is clicked (#410) (.1)
## 22000.318.37 ## 22000.318.37
Tested on build 22000.318 and 22000.346 (currently in Windows Insider beta and release preview channels). Tested on build 22000.318 and 22000.346 (currently in Windows Insider beta and release preview channels).

21
ExplorerPatcher/dllmain.c

@ -462,8 +462,9 @@ POINT GetDefaultWinXPosition(BOOL bUseRcWork, BOOL* lpBottom, BOOL* lpRight, BOO
return point; return point;
} }
void TerminateShellExperienceHost() BOOL TerminateShellExperienceHost()
{ {
BOOL bRet = FALSE;
WCHAR wszKnownPath[MAX_PATH]; WCHAR wszKnownPath[MAX_PATH];
GetWindowsDirectoryW(wszKnownPath, MAX_PATH); GetWindowsDirectoryW(wszKnownPath, MAX_PATH);
wcscat_s(wszKnownPath, MAX_PATH, L"\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe"); wcscat_s(wszKnownPath, MAX_PATH, L"\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe");
@ -500,6 +501,7 @@ void TerminateShellExperienceHost()
if (!_wcsicmp(wszProcessPath, wszKnownPath)) if (!_wcsicmp(wszProcessPath, wszKnownPath))
{ {
TerminateProcess(hProcess, 0); TerminateProcess(hProcess, 0);
bRet = TRUE;
} }
CloseHandle(hProcess); CloseHandle(hProcess);
hProcess = NULL; hProcess = NULL;
@ -511,6 +513,7 @@ void TerminateShellExperienceHost()
CloseHandle(hSnapshot); CloseHandle(hSnapshot);
} }
} }
return bRet;
} }
long long elapsedCheckForeground = 0; long long elapsedCheckForeground = 0;
@ -546,6 +549,7 @@ DWORD CheckForegroundThread(DWORD dwMode)
{ {
RegDeleteKeyW(HKEY_CURRENT_USER, _T(SEH_REGPATH)); RegDeleteKeyW(HKEY_CURRENT_USER, _T(SEH_REGPATH));
TerminateShellExperienceHost(); TerminateShellExperienceHost();
Sleep(100);
} }
printf("Ended \"Check foreground window\" thread.\n"); printf("Ended \"Check foreground window\" thread.\n");
return 0; return 0;
@ -2498,6 +2502,10 @@ HRESULT stobject_CoCreateInstanceHook(
{ {
if (hCheckForegroundThread) if (hCheckForegroundThread)
{ {
if (WaitForSingleObject(hCheckForegroundThread, 0) == WAIT_TIMEOUT)
{
return E_NOINTERFACE;
}
WaitForSingleObject(hCheckForegroundThread, INFINITE); WaitForSingleObject(hCheckForegroundThread, INFINITE);
CloseHandle(hCheckForegroundThread); CloseHandle(hCheckForegroundThread);
hCheckForegroundThread = NULL; hCheckForegroundThread = NULL;
@ -2518,6 +2526,8 @@ HRESULT stobject_CoCreateInstanceHook(
RegCloseKey(hKey); RegCloseKey(hKey);
} }
TerminateShellExperienceHost(); TerminateShellExperienceHost();
InvokeFlyout(0, INVOKE_FLYOUT_BATTERY);
Sleep(100);
hCheckForegroundThread = CreateThread( hCheckForegroundThread = CreateThread(
0, 0,
0, 0,
@ -2596,6 +2606,10 @@ HRESULT pnidui_CoCreateInstanceHook(
{ {
if (hCheckForegroundThread) if (hCheckForegroundThread)
{ {
if (WaitForSingleObject(hCheckForegroundThread, 0) == WAIT_TIMEOUT)
{
return E_NOINTERFACE;
}
WaitForSingleObject(hCheckForegroundThread, INFINITE); WaitForSingleObject(hCheckForegroundThread, INFINITE);
CloseHandle(hCheckForegroundThread); CloseHandle(hCheckForegroundThread);
hCheckForegroundThread = NULL; hCheckForegroundThread = NULL;
@ -2616,6 +2630,8 @@ HRESULT pnidui_CoCreateInstanceHook(
RegCloseKey(hKey); RegCloseKey(hKey);
} }
TerminateShellExperienceHost(); TerminateShellExperienceHost();
InvokeFlyout(0, INVOKE_FLYOUT_NETWORK);
Sleep(100);
hCheckForegroundThread = CreateThread( hCheckForegroundThread = CreateThread(
0, 0,
0, 0,
@ -6290,10 +6306,11 @@ void InjectShellExperienceHost()
{ {
#ifdef _WIN64 #ifdef _WIN64
HKEY hKey; HKEY hKey;
if (RegOpenKeyW(HKEY_CURRENT_USER, _T(SEH_REGPATH), &hKey)) if (RegOpenKeyW(HKEY_CURRENT_USER, _T(SEH_REGPATH), &hKey) != ERROR_SUCCESS)
{ {
return; return;
} }
RegCloseKey(hKey);
HMODULE hQA = LoadLibraryW(L"Windows.UI.QuickActions.dll"); HMODULE hQA = LoadLibraryW(L"Windows.UI.QuickActions.dll");
if (hQA) if (hQA)
{ {

6
version.h

@ -1,7 +1,7 @@
#define VER_MAJOR 22000 #define VER_MAJOR 22000
#define VER_MINOR 318 #define VER_MINOR 318
#define VER_BUILD_HI 38 #define VER_BUILD_HI 38
#define VER_BUILD_LO 0 #define VER_BUILD_LO 1
#define VER_FLAGS VS_FF_PRERELEASE #define VER_FLAGS VS_FF_PRERELEASE
@ -12,5 +12,5 @@
#define VER_STR(arg) #arg #define VER_STR(arg) #arg
// The String form of the version numbers // The String form of the version numbers
#define VER_FILE_STRING VALUE "FileVersion", "22000.318.38.0" #define VER_FILE_STRING VALUE "FileVersion", "22000.318.38.1"
#define VER_PRODUCT_STRING VALUE "ProductVersion", "22000.318.38.0" #define VER_PRODUCT_STRING VALUE "ProductVersion", "22000.318.38.1"

Loading…
Cancel
Save