I’m currently experimenting with replacing the shell (as specified in HKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogon) in Windows 11 with my own custom shell. Please refrain from discussing if this makes sense or not, it’s a pure fun/research project, and therefor doesn’t have to make any sense, I just want to find out what works and what does not.
So I now have my own shell that comes with a functional start menu, quicklaunch bar, task bar and system tray, all based on classic Win32 APIs. The file manager is still MS Explorer (but could be replaced with alternative file managers like e.g. Explorer++ or XYExplorer), so my question is not about the lack of running Explorer processes, but only about this specific one that provides the “Progman” and “Shell_TrayWnd” window classes.
There are a couple of things that don’t work when replacing Explorer as shell, but for me the most important one at the moment is that I can’t launch UWP apps. In general I wouldn’t care, since in my actual Win 11 system I try to avoid those anyway whenever I can. But in particular the system’s “Settings” app (in contrast to the the classic control panel, which of course works perfectly fine) and other related system apps don’t work.
So my question is: are there any known ways to retroactively initialize an environment that would make the settings app work, even if Explorer wasn’t registered as shell at login?
What I could of course do to run the settings app is:
- kill my own shell
- kill all existing Explorer processes
- then start a new Explorer process, which will automatically become the shell
- then start the settings app (e.g. via protocol “ms-settings:”)
But that’s really ugly. Any better ideas?