mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-27 17:00:59 +01:00
This project aims to enhance the working environment on Windows
1f4b586f03
ExplorerPatcher includes a mechanism which allows the user to load a single DLL, named `ep_extra.dll` and placed in `C:\Windows` when `explorer.exe` loads. This was long requested by some users who wanted to perform their own code/initializations/hooks when `explorer` started. In the mean time, I thought `ep_extra.dll` would work nicely as a loader for any number of modules. I could've included this functionality in the main ExplorerPatcher code, but I decided to take it up as a challenge instead and offer a robust implementation without changing ExplorerPatcher's main code. Thus, when using this as `ep_extra.dll`, it will also load DLLs that match the `ep_extra_*.dll` pattern. These DLLs must export a function called `setup` which the loader will execute on the thread that is loading the DLLs. Although not currently checked, return 0 from this function if your initialization succeeded, or some error code when it fails. What's up with the assembly and shell codes and weird threads that I create? Well, I realized I kind of did a mistake when coding ExplorerPatcher, in that I should have loaded and executed `ep_extra` on a seprate thread, not in `explorer`'s main thread. But since I said I'd do this challenge without changing EP, this was my solution towards having this `ep_extra` loader do its work, load the other DLLs, if any, and then unload itself from memory safely and (almost) cleanly without disturbing the main application right after it does its job. This way, you can update it seamlessly when `explorer` is running, which is much more convenient than having to kill `explorer`, replace the DLL, and then manually reload `explorer`. I don't know if this is the best way, but it is the way I thought about when realizing that I cannot call `FreeLibrary` simply, since the "next line" (which would have been a "return") is well outside of valid memory at that point. `FreeLibraryAndExitThread` also can't be used since I do not want to exit `explorer`'s main thread which the loader's function is called on. |
||
---|---|---|
.github/workflows | ||
ep_dwm@716bb1d594 | ||
ep_extra | ||
ep_generate_release_description | ||
ep_generate_release_name | ||
ep_setup | ||
ep_setup_patch | ||
ep_startmenu | ||
ep_weather_host | ||
ep_weather_host_stub | ||
ExplorerPatcher | ||
libs | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
debug.h | ||
ExplorerPatcher.sln | ||
FUNDING.yml | ||
LICENSE | ||
README.md | ||
version.h |
ExplorerPatcher
This project aims to enhance the working environment on Windows.
PayPal donations: here or using e-mail address valentingabrielradu@gmail.com
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?
- Download the latest version of the setup program.
- Run the installer. It will automatically prompt for elevation, after which it will install the necessary files.
- 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
toep_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.