1
0
mirror of https://github.com/valinet/ExplorerPatcher.git synced 2024-11-15 03:27:35 +01:00
This project aims to enhance the working environment on Windows
Go to file
Valentin Radu cd2d5c66f9 Weather: Fixed a bug that could hang or lock the shutdown/restart
sign out process when using the weather widget

The hang was happening because the UI thread of explorer was hanging in
`dllmain!PeopleBand_DrawTextWithGlowHook` in a call to `AcquireSRWLockExclusive`
when the host process for the widget terminated (due to the system shutting
down - the case when hr is 0x800706ba aka "RPC server is unavailable"). When the
remote process dies, say we are in `dllmain!PeopleBand_DrawTextWithGlowHook`;
a call to some interface from it hangs for a bit, and during
that time the calling thread is able to continue its lifetime, during which a
subsequent call to `dllmain!PeopleBand_DrawTextWithGlowHook` is made (another
widget redraw is requested). As SRW locks do not really support recursion (calling
the same function from the same thread), this behavior is then expected and the
whole thing hangs, thus hanging the shutdown process (and explorer's UI thread in
turn). That's why when you clicked "Cancel" when the UI to close hung apps was
displayed at shutdown, you returned to a frozen desktop. Apparently, Windows lets
explorer hang indefinitely at shutdown, which made matters even worse.

The solution is two fold:
* Widget destruction is dispatched to the service thread. This is not strictly
necessary, but allows for better control of where the thing is destroyed from.
* Switched from SRW locks to a critical section, which is a per-thread lock. All
this has to do is make sure the program destroys the widget only when no other
routine (usually drawing stuff) uses it.

This should pretty much mitigate the issue, hopefully.
2022-04-30 04:03:30 +03:00
.github/workflows Build.yml: Fix compilation on windows-latest 2022-02-19 14:17:16 +02:00
ep_dwm@64b8099bd0 ep_dwm: Fixed a bug that made this not work after signing out and then back into a user account 2022-03-18 00:00:42 +02:00
ep_generate_release_description Fixed tiny typo 2021-11-15 04:05:04 +02:00
ep_generate_release_name Removed resource.h from ep_generate_release_name 2021-11-14 18:27:01 +02:00
ep_setup Setup: Disable UndockingDisabled when servicing the application 2022-03-13 22:01:22 +02:00
ep_setup_patch When an update is available, the notification displays the version of the update; The updater correctly detects when the current version is a pre-release but the user has switched the update channel to stable and does not suggest the older stable version as an update anymore (multiple reports, #540, #710) 2022-01-22 21:12:18 +02:00
ep_startmenu StartMenu: Explicit ordinal for GetCmdArguments 2022-02-26 13:28:53 +02:00
ep_weather_host Weather: Fixed a bug that had "COM Surrogate" display as a running 2022-04-30 03:35:13 +03:00
ep_weather_host_stub Weather: Display last time of update in Properties 2022-03-14 04:53:48 +02:00
ExplorerPatcher Weather: Fixed a bug that could hang or lock the shutdown/restart 2022-04-30 04:03:30 +03:00
libs All: Use global OS version query functions 2022-03-06 00:04:30 +02:00
.gitignore Housekeeping 2021-10-13 03:38:38 +03:00
.gitmodules Option to disable rounded corners for windows 2022-01-21 13:06:46 +02:00
CHANGELOG.md Version: 22000.613.44.1 2022-04-14 10:50:28 +03:00
debug.h Tons of bug fixes, quality improvements, proper startup, avoid double patching 2021-10-25 06:07:19 +03:00
ExplorerPatcher.sln Start: Functional Windows 10 Start menu 2022-02-25 00:19:25 +02:00
FUNDING.yml Create FUNDING.yml 2021-11-10 04:17:17 +02:00
LICENSE Initial commit 2021-08-09 17:17:24 +03:00
README.md All: Support for Windows 10 2022-02-20 18:35:33 +02:00
version.h Version: 22000.613.44.1 2022-04-14 10:50:28 +03:00

ExplorerPatcher

This project aims to enhance the working environment on Windows.

PayPal donations: here or using e-mail address valentingabrielradu@gmail.com

Build status

Feature summary

  • Choose between Windows 11 or Windows 10 taskbar (with labels support, small icons and lots of customization).
  • Disable Windows 11 context menu and command bar in File Explorer and more.
  • Open Start to All apps by default, choose number of frequent apps to show, display on active monitor and more.
  • Choose between the Windows 11, Windows 10 and Windows NT Alt-Tab window switcher with customization.
  • Lots of quality of life improvements for the shell, like:
    • Skin tray menus to match Windows style, make them behave like flyouts and center them relative to the icon.
    • Choose action when left and/or right clicking the network icon.
    • Revert to the Windows 7 search box in File Explorer, or disable Windows Search altogether.
    • Disable immersive menus and use mitigations that help you run the real classic theme without glitches.
    • Learn more about all the functionality offered by this program starting with this article in the wiki, here.

Some features may not be available on Windows 10.

How to?

  1. Download the latest version of the setup program.
  2. Run the installer. It will automatically prompt for elevation, after which it will install the necessary files.
  3. When done, you will be greeted with the familiar Windows 10 taskbar. To customize the options offered by the program, right click the taskbar and choose "Properties".

That's it. It's that simple.

What next?

  • Consult the wiki - this is highly recommended. There you will find information about more advanced tasks, modes of operation and features offered by this patcher.
  • Get familiar with most of the features offered by this patcher here.
  • Learn how to manage updates and what to expect from new versions and new Windows builds here.
  • Have a question? Consult the Frequently Asked Questions.
  • Some other question? Open a thread in Discussions.
  • Found a bug, have an issue or a problem with the application? Read here what to do next.
  • I highly encourage you to check out the source code and tinker with it. I am open to merging new features, enhancements and fixes; also, I think it provides good insights on topics of interests in this area.

Known issues

Items marked with "bug" that are still "Open" represent known issues. Active work is undergone regarding an item if it is additionally marked with "investigating". Help is especially required for items marked with "help wanted". Consult the list in Issues.

Uninstalling

  • Use "Programs and Features" in Control Panel, or "Apps and features" in the Settings app or
  • Run ep_setup.exe /uninstall or
  • Rename ep_setup.exe to ep_uninstall.exe and run that.

Updating

  • The program features built-in updates: go to "Properties" - "Updates" to configure, check for and install the latest updates. Learn more here.
  • Download the latest version's setup file and simply run it.

More information