ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 22, 2019 15:35:52 GMT -8
Basically, I saw this thread which is an amazing solution for Classic Theme and decided I wanted to create a GUI for it. It's a simple .NET app which does the following things: - Installs and configures Open-Shell and StartIsBack to emulate a Classic taskbar/start menu experience
- Enables/Disables Classic Theme with a press of a button (or command)
- Automatically enables Classic Theme on boot-up after explorer.exe has started on Win10 (This makes sure all of the explorer bugs don't occur and that explorer behaves kinda like an immersive app)
- Installs Classic Task Manager, 7+ Taskbar Tweaker, ExplorerContextMenuTweaker, T-Clock, Folder Options X and RibbonDisabler (They are all seperate options so you don't need all of them)
How the Classic Theme works
Winlogon uses a shared memory section for handling themes. By removing access to this memory section the Winlogon process can no longer manage themes so the default theme is used, the Classic Theme. It's better then suspending the Desktop Window Manager because that bugs out the whole system while this still uses DWM to keep the system running smooth.
Screenshots of GUI (v1.0.6) running on Windows 10 Pro (version 1903) and Windows 8.1 Pro (build 9600):
 
Command Line Usage
SimpleClassicTheme.exe [OPERATION] {ARGS..} Operations: - /enable This enables the classic theme
- /disable This disables the classic theme
- /configure This opens the classic theme control panel
- /boot This runs the boot circuitry of the utility. Do not use. Use /enableauto instead
- /enableauto This enables/disables (depending on current state) the classic theme, and if enabled in GUI, also the taskbar.
Arguments:- -t, --enable-taskbar Enables/Disables classic taskbar as well (Depending on operation)
TODO
Guide (RECOMMENDED)
I've made a guide on Google Drive to make it easier for everyone.
NOTE: If you get a skinny taskbar or metro doesn't work on boot-up:
Open the utility again and increase the Taskbar Delay
Download
The application can be downloaded through my Github
Before you download I just want to say one thing: I'm not taking any responsibility for any damage done to your PC. If you have a clean system and use my guide, you'll be fine!
+-----------------------------------------------------------------+ | Currently Windows 8.1 and Windows 10 1803+ only | | Also: READ THE GUIDE BEFORE ASKING QUESTIONS | +-----------------------------------------------------------------+
KNOWN ISSUES:
- Metro doesn't work on startup sometimes. (Partially fixed)
How do I report bugs?
NOTE: Make sure you have the latest version before reporting any bugs!It's simple. Go to this page and create an issue on the Github issue tracker. Use the format provided!
|
|
|
Post by powerplayer on Aug 22, 2019 21:34:44 GMT -8
nice job i like the idea now we need a taskbar.cpl using the win8.1 or old win10 explorer.exe.mui the dialogs are there but i have no idea on how to make it , if you decide to do it add a making of article ...
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 23, 2019 13:29:54 GMT -8
EDIT: Added Image of taskbar
|
|
|
Post by powerplayer on Aug 23, 2019 16:07:14 GMT -8
Suggestion : you can get any explorer.exe.mui from win8 or 8.1 www.pconlife.com/fileinfo/explorer.exe.mui-info/ take its resources and make a classic taskbar as taskbar.cpl cpls are compiled as dll's then you just replace the metroapp with the real thing which is a good idea  another thing that would be cool is to do something Vista had completely wrong they separated all the dialogs from desk.cpl and scattered them so tabbing was no longer possible but you could get them and add back the tabs in vista style which would look awesome to do it easier you need to get the resources with reshacker use some of the reactos 0.3.9 version of desk.cpl to make it functional (they ruined the newer one) doxygen.reactos.org/dd/d4c/cpl_2desk_2classinst_8c_source.htmlAs you see www.askvg.com/create-shortcuts-to-themes-desktop-background-screen-saver-display-settings-and-more/ vista have more accurate classic themed things then 7 but win7 is just a continuation of vista and with reactos code to back things up things should be up and running smoothly maybe even better then the real thing it would be nice to not be dependent on metro at all because it is a dying platform that nobody really wanted Im pretty annoyed with openshell , it refuses to load all of my classicshell skins
|
|
|
Post by anixx on Aug 23, 2019 23:10:35 GMT -8
Please give me suggestions on how to improve this app (eg. registry tweaks for buggy things)
If you went as far as writing a .net application, then you can manage the access rights to the theme object without using powershell. The powershell command calls the APIs that any other program can do as well directly.
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 16:13:42 GMT -8
Well, I would love to but I have no idea how cpl's and stuff like that works. Do you have any good starting guide or something similar?
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 16:14:41 GMT -8
The powershell command calls the APIs that any other program can do as well directly. Thats basically what I'm working on right now. Speeding up the application by directly calling those API's
|
|
|
Post by powerplayer on Aug 24, 2019 16:38:40 GMT -8
Well, I would love to but I have no idea how cpl's and stuff like that works. Do you have any good starting guide or something similar? wikileaks.org/ciav7p1/cms/page_13763468.htmlhere is a guide www.codeproject.com/Articles/3026/Creating-a-Config-Panel-Appletthen you can reshack this file with reshacker and get the dialogs code explorer.exe.mui.cpl (18.5 KB) Its a good beginning since so much info about enabling these settings in registry are available and there is always processexplorer that shows what changes when enabling disabling settings directly as a subprocess in rundll32 Then we got the unfinished reactos desk.cpl schemes dont work properly but all the rest does github.com/mirror/reactos/tree/master/reactos/dll/cpl/desk latest working version with all windows was 0.3.9 before they decided to gimp the os make it crash after install in virtual machines etc 0.3.9 even though an ancient build was easier to mange and many things like the cpls haven't been evolved since then just gimped up somehow that's why reactos taskbar is incredibly buggy but it is still a good idea to look at it , here is the 0.3.9 source sourceforge.net/projects/reactos/files/ReactOS/0.3.9/ in the latest reactos you find that many cpls work except tiimedate and desk.cpl possibly a few more
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 17:21:31 GMT -8
Sooo, if I understand correctly. CPLs are just DLLs but with some extra code so that their dialog can be run "kinda" like an executable?
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 17:23:15 GMT -8
WAIT! If I use Dialog 7 in the file you gave me and map the registry manually, I can basically replicate that Dialog inside a CPL file right?
|
|
|
Post by powerplayer on Aug 24, 2019 17:36:54 GMT -8
WAIT! If I use Dialog 7 in the file you gave me and map the registry manually, I can basically replicate that Dialog inside a CPL file right? Yes on both posts if you know what your doing it will probably be like lego . If only reshacker you can replicate the dialog but the number is hardcoded so you must use the same dialog number i tried it before but you could probably add the code into your dll project and nobody would be the wizer The tricky part would be to look up the vista desk.cpl dialogs probably in explorer.exe.mui or shell32.dll.mui or even imageres.dll.mui or the real dlls get the dialogs modify the source code of the reactos desk.cpl and you got an idea of what your doing drive.google.com/open?id=122Wz40ac5o4YIVkmkwp0TcSVdxnqi5Bn here is a hacked version of desk2k.cpl including regs that add a buncha classic systemcolors (schemes) its how windows did it since 1.0 no idea why reactos programmers didnt add that to their desk.cpl (thats their only broken function) but fixable this cpl works on all windows but u get lots of errors cause the resolution changer is broken but it works fine in reactos desk.cpl that i posted in this thread winclassic.boards.net/thread/328/classic-taskbar-programs-win10-links
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 17:48:04 GMT -8
A: link is dead lol found it on your other thread and it's awesome. It just doesn't detect schemes but i'm sure we will fix that B: it's sounds really cool to do but i don't see how this can be helpful for my program. i mean it's all cool, but my program now "just works". i'm really just looking for ways to make the utility faster and easier. but i do find this interesting though i just think we should continue this in a seperate thread.
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 24, 2019 17:58:27 GMT -8
The powershell command calls the APIs that any other program can do as well directly. Do you know what API's are being called? I can't find any reference of Set-NtObjectDescriptor in the source code of NtObjectManager.
|
|
|
Post by powerplayer on Aug 24, 2019 18:19:08 GMT -8
A: link is dead lol found it on your other thread and it's awesome. It just doesn't detect schemes but i'm sure we will fix that B: it's sounds really cool to do but i don't see how this can be helpful for my program. i mean it's all cool, but my program now "just works". i'm really just looking for ways to make the utility faster and easier. but i do find this interesting though i just think we should continue this in a seperate thread. Oh sorry this is the win2k version i should update my post to add it you get the theme schemes included helps a lot drive.google.com/file/d/122Wz40ac5o4YIVkmkwp0TcSVdxnqi5Bn/view?usp=sharing I added it to my megathread , thats where all the cool reversing metro-stuff will end up and people will be able to get back to a real desktop instead of all this fake metrostuff that killed windowsphone .
|
|
|
Post by anixx on Aug 24, 2019 23:03:40 GMT -8
The powershell command calls the APIs that any other program can do as well directly. Do you know what API's are being called? I can't find any reference of Set-NtObjectDescriptor in the source code of NtObjectManager. Because it's Set-NtSecurityDescriptor, not Set-NtObjectDescriptor.
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 25, 2019 3:49:44 GMT -8
What schemes do I have to put where?
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 25, 2019 3:58:06 GMT -8
Do you know what API's are being called? I can't find any reference of Set-NtObjectDescriptor in the source code of NtObjectManager. Because it's Set-NtSecurityDescriptor, not Set-NtObjectDescriptor. *insert facepalm* Found it but it's seems like it is a terribly long process to backtrack and reconstruct only the code I need. Doesn't anyone here know what API calls this PowerShell module makes?
|
|
|
Post by powerplayer on Aug 25, 2019 14:22:25 GMT -8
you see how the schemes are saved in the reg file thats where they are saved/loaded in the appearance bar in desk2k.cpl the vista use the same graphics for it like winxp except more options like fonts and stuff bad thing was they scattered the dialogs they were no longer tabbed it managed to annoy quite a few people but the dialogs are in vista so its probably fixable , all vista dialogs in a beautiful tabbed deskv.cpl would be perfect , then just drop in system32 freplace the metrosetting with great confidence here is more sourcecode stephanos.io/archives/21 this is opennt might help a bit
|
|
ʇǝǝๅ ftw
Regular Member
 
God bless this forum xD
Posts: 444
OS: Windows 10 1909
Theme: SCT
|
Post by ʇǝǝๅ ftw on Aug 25, 2019 14:51:32 GMT -8
Yeah all of this is kinda out of my scope, but I'll still try it. Always fun to do something new xD. But if I understand correctly, I need to get all of those dialogs and map them to the correct registry entries. But how do those dialogs "refresh" when you click Apply? Do they run some sort of executable or call some API call?
|
|
|
Post by powerplayer on Aug 25, 2019 15:05:31 GMT -8
Thats all in the source like you compare like the reactos source of desk.cpl to the win2k one see the similarities and if you find out how they store the calls it would be pure lego then it would be a piece of cake to snatch some vista dialogs and tie the calls to them i think the calls are linked somehow in the code like in reshacker when you select one line you see exactly what gets selected now search for that in the source code that might make more sence
|
|