Jump to content

XP shell on newer windows


Sheepsnoop

Recommended Posts

It's The best of both worlds. We could have the full feel of windows XP but still be compatible with new drivers and programs.
I've asked before on different places but they've just said it was impossible, which I highly doubt. looking at explorer.exe with depends.exe, the only thing that fails it from laucnhing without compatibility mode on windows 7 1701 is shunimpl.dll.
For explanation on shunimpl go here: https://www.geoffchappell.com/studies/windows/ie/browseui/index.htm 
Basically shlwapi and other things forward old calls to shunimpl, but shunimpl doesn't actually do anything but fail it, causing explorer to instantly fail. The only thing compatibility mode does is make it so it doesn't auto crash. I was able to get XP's explorer partly working without compatibility mode by taking a random dll like browseui and renaming it shunimpl.dll and putting it in system32.
Since shell32 and others already dll proxy to shunimpl, I believe you could easily point it to an older DLL and gain all those missing functions, but that's above me.

The next thing is the registry. I was able to make a winpe with win7pe builder and have the shell registry be that of livexp's explorer script one. It installed and ran but for some reason explorer.exe doesn't work on the winpe one even though it does on the normal 7 build which used the same iso.

I've also tried putting explorer.exe in system32 of xp's and using explorer.exe.local and had slight success when running it in depends.exe.

I believe if someone was to do this properly they'd need windows server core since it has no full shell to being with but idk.
I haven't tested on windows 10 yet but iirc explorer.exe also worked on it but broken still with compatibility mode.
These are all my findings. I just really want someone with better knowledge than me to work on this, it would be a dream come true for all the XP fans.
btw no I don't accept any of the fake crap like reactos or classicshell. What I want is a true experience, with the full classic file explorer n all.

If anyone decides to work on this, use x64 xp or server instead of 32 bit.

Untitled.png

Edited by Sheepsnoop
Link to comment
Share on other sites


21 hours ago, Sergiaws said:

What about Windows Vista's Explorer.exe? It should be similar to Windows XP's explorer.exe, but Windows Vista is closer to newer Windows versions.

Probably not.

On 8/15/2021 at 5:20 PM, Sheepsnoop said:

btw no I don't accept any of the fake crap like reactos or classicshell. What I want is a true experience, with the full classic file explorer n all.

The devs gutted the old file explorer when scrambling to cobble together scraps of junk and force Vista out the door. Don't forget that development of Vista had terribly fallen apart earlier and it was released much later than intended. That OS was an incredible mess, especially at launch, and things that were broken or removed so it could be released relatively quickly still show through in the latest Windows releases today.

Link to comment
Share on other sites

On 8/16/2021 at 12:20 AM, Sheepsnoop said:

It's The best of both worlds. We could have the full feel of windows XP but still be compatible with new drivers and programs.
I've asked before on different places but they've just said it was impossible, which I highly doubt. looking at explorer.exe with depends.exe, the only thing that fails it from laucnhing without compatibility mode on windows 7 1701 is shunimpl.dll.
For explanation on shunimpl go here: https://www.geoffchappell.com/studies/windows/ie/browseui/index.htm 
Basically shlwapi and other things forward old calls to shunimpl, but shunimpl doesn't actually do anything but fail it, causing explorer to instantly fail. The only thing compatibility mode does is make it so it doesn't auto crash. I was able to get XP's explorer partly working without compatibility mode by taking a random dll like browseui and renaming it shunimpl.dll and putting it in system32.
Since shell32 and others already dll proxy to shunimpl, I believe you could easily point it to an older DLL and gain all those missing functions, but that's above me.

The next thing is the registry. I was able to make a winpe with win7pe builder and have the shell registry be that of livexp's explorer script one. It installed and ran but for some reason explorer.exe doesn't work on the winpe one even though it does on the normal 7 build which used the same iso.

I've also tried putting explorer.exe in system32 of xp's and using explorer.exe.local and had slight success when running it in depends.exe.

 

I do not want put you down, but there is more to it than just starting up shell. Windows system files might be missing some api calls it depends on, Windows XP shell is tied to internet explorer which is slowly dropping on win10 (only MSHTML.DLL will be left) and it may and will cause compability issues. Also control panel and others would not work proper since new control panel that is replacing old one soon.

 

Back in late 90s there was software called 98lite for Windows 98/ME that allowed replace whole ie based explorer shell with one from windows 95, but windows 98, 95 and ME were very close each other mostly different driver model and shell (that worked mostly same on every version) while Windows XP got lot code different to windows 10 and also win10 updates could break it. And I am aware there was inexperience patcher for XP that swapped win2000 stuff to XP, but original winxp was mostly Windows 2000 with pretty look until sp2 which made it closer to Windows server 2003.

 

I am not saying give up with your project, but that will be huge project to reprogram everything to work proper and unless you would need plenty of programming skills, time and other while not violating Microsoft software licence way they could sue you. Perhaps one day you prove me wrong (I will be amazed if someone actually does it) but in my opinion it is better keep focusing what XP community been so far, backporting software and drivers to XP.

 

On 8/16/2021 at 12:20 AM, Sheepsnoop said:


btw no I don't accept any of the fake crap like reactos or classicshell. What I want is a true experience, with the full classic file explorer n all.

only way you can get true experience is to run Windows XP. I have had multiple peoples asking if can have win7, XP or 98 shell on Windows 10 and I explained why cannot. Everyone seems want someone magically make their Windows 10 desktop be fully like XP that is like asking Saab 900 turbo experience on Tesla Roadster. Only way is to run Windows XP and using hw and  sw compatible with it to get experience..

Link to comment
Share on other sites

4 hours ago, Mr.Scienceman2000 said:

 

I do not want put you down, but there is more to it than just starting up shell. Windows system files might be missing some api calls it depends on, Windows XP shell is tied to internet explorer which is slowly dropping on win10 (only MSHTML.DLL will be left) and it may and will cause compability issues. Also control panel and others would not work proper since new control panel that is replacing old one soon.

This problem would be fixed by using .exe.local and keeping the shell dlls next to it though shouldn't it? I know it overrides knowndlls, but not if a program will actually run using a completely different shell than the system it's on uses.

I know that ie6 in thinapp works completely on win7 and can access the c: drive fine. That was a few years ago last I tested though and now can't find a download to thinapp. I know that's virtualization, but iirc it was pretty seamless, and dropping explorer.exe in the virtual drive also ran semi well. Maybe that could be another avenue to look into...


 

 

5 hours ago, Mr.Scienceman2000 said:

 

only way you can get true experience is to run Windows XP. I have had multiple peoples asking if can have win7, XP or 98 shell on Windows 10 and I explained why cannot. Everyone seems want someone magically make their Windows 10 desktop be fully like XP that is like asking Saab 900 turbo experience on Tesla Roadster. Only way is to run Windows XP and using hw and  sw compatible with it to get experience..

I hope I didn't come off as an a** when I said that, I just always see people answering to questions like this saying to just use classicshell, or even use linux which is a total joke of an answer. And sorta just dodge the question completely never giving an actual reason.

Link to comment
Share on other sites

You may try to bundle renamed copies of all direct dependencies along with Explorer.exe, no clue if/how it would work though.

Right now Dependency Walker shows 18 .DLL files called by my current Explorer, 5 of those using delayed loading.

There are some pretty critical ones in the list though, like Kernel32.DLL and NTDLL.DLL ...

So, copy all those + Explorer.exe to a new folder. Rename all of them to avoid future clashing with the newer libs of the target system. You could i.e. change the first letter.

Then use a tool like PPEE and change the imports of each file to the new names.

Move the bundle to the target system and test what happens.

You may find out that additional files are needed. Copy + rename  + fix imports of the additional files, then test again. Repeat as much as needed.

If you keep at it, you may end up with a huge pile of files in the final bundle. And it may still refuse to work, hehe.

If you succeed in making it start, open some other file manager, kill all instances of both XP and newer Windows Explorers, then start only the XP Explorer. If you are lucky, you could be greeted with the XP Desktop and Taskbar.

---

Now, if you get tired of trying to make the original XP Explorer.exe work on lets say Win10/11... You can try to simulate its look and feel by other means.

But first, we have to separate the main sides of the XP shell, as each will probably need a dedicated solution...

  • Windows (File) Explorer - there are many replacements, some simple, some with tons of extras. Few examples - Explorer++, ExplorerASM (Win9x look), XYplorer (paid).
  • Desktop/Taskbar/Start menu - Object Desktop (paid) seems to be a complete bundle; ClassicShell/OpenShell with Luna skin (guide); skinpacks.com seems to have a few XP skins and helper tools (just found it, no clue how safe it is); also check this guide.
  • what else?

 

HTH

 

 

Link to comment
Share on other sites

39 minutes ago, RainyShadow said:

So, copy all those + Explorer.exe to a new folder. Rename all of them to avoid future clashing with the newer libs of the target system. You could i.e. change the first letter.

Use .exe.local and look at depends.exe or equivalant, you will see all the kernel and shells are 5.2, meaning we don't need to rename them at all. Unless in the file tree the dlls themselves still call the new ones but I'm pretty sure they don't. If they do, does a .dll.local work? Idk.

Another idea I had was to completely replace syswow64. I know for a fact that windows can run completely fine with a replaced shell32 and whatnot in the x86 folder. And with the slow decline of x86 software, I'd personally be able to give up 6.0 and up x86 support. Though we could also mitigate this by using 32bit one core api in syswow64.
Haven't done tests though.

Link to comment
Share on other sites

  • 2 weeks later...

I have been testing .exe.local more lately. no luck though
I got the xp source code and compiled only the shell for amd64, that way I could know exactly what dlls the shell is. sadly dll redirection for only the shell didn't work. I forget why  exactly since it's been a few hours. Something about msvcr is different for the amd64 source compared to regular server 2003 x64 also. Maybe compiling the xp src instead of server will fix it? idk...

I decided to do all my testing on vista rtm since it's the closest to xp and if I can get that working then I can work my way up. So far I know now that shell32, browseui, comdlg, shlwapi, uxtheme, and some other dlls can be redirected for normal applications fine but don't let explorer run, even though without those redirected ones explorer will run but broken.

I feel like if the onecoreapi or vista extended kernel team had any interest in this then it would be relatively simple for them to do. oh well...

Link to comment
Share on other sites

Update. I downloaded vista's sdk and copied the libs to xp's source, and then copied xp's shell libs back into the folder replacing anything else. I was able to almost successfully take the compiled shell and and place it into syswow64.
The problem is the newer comctl32 calls something in shell32 that xp's doesn't have, isthreadex or something like that. I tried xp's comctl32 which lets me open applications but the windows are severely messed up (pic below).

With just vista's comctl32 I was able to open notepad and taskmgr but I couldn't open dialogs like save as or open file.

I was also able to get logonui to run.


I also noticed vistas user32 gave some complaints about xp's uxtheme so I tried compiling xp's but some vista dll calls a function that it doesn't have so that doesn't work.
 

unknown.png

unknown.png

Edited by Sheepsnoop
Link to comment
Share on other sites

A person told me that he got the XP Explorer and the XP classic start menu in Windows 10 changing some files or doing something like that, but desktop and other things don't work or are buggy. I expect he'll send me these files, and tell here my experience.

Link to comment
Share on other sites

  • 2 months later...

I thought about this again recently and think I found a better solution that would've solved most problems that I should've looked into earlier. We should be able to just build the shell and forward all newer calls to the original windows /vista/7/10/11 dlls. Kind of like one core api, Except since we're using xp's shell for newer windows we still need to compile it because there are still calls removed that the rtm shell needs iirc.

Again I don't know how to code so I have no idea how to implement forwarding in xp's src. I'm just putting it out there.


 

On 9/4/2021 at 4:47 PM, Sergiaws said:

A person told me that he got the XP Explorer and the XP classic start menu in Windows 10 changing some files or doing something like that, but desktop and other things don't work or are buggy. I expect he'll send me these files, and tell here my experience.

Yes, that's been known for a while. It doesn't actually work beyond a broken start menu, and there is no fixing that because the functions are deleted or changed.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...