|
Post by leet on Aug 22, 2019 15:35:52 GMT -8
Deprecation notice
Simple Classic Theme is no longer actively being developed. The SCT website will remain archived until the 28th of June 2024 to ensure installed systems do not break. After that, an archive will be created elsewhere. For more information, see this post. The list of projects that will no longer be developed for is: Simple Classic Theme, Simple Classic Theme Taskbar (previously deprecated but still received infrequent updates), Leet.ClassicTheme.Taskbar (project not announced here) and components of SCT that I was going to release in a separate project (Leet's Toolkit), which includes Leet.ClassicTheme.SystemResources (scripted resource replacement), Leet.ClassicTheme.MultiUser (MCT) and Leet.ClassicTheme.Theming (desk.cpl replacement). As I said in the linked post, I want to thank everyone for all the support I have received through the years. Developing Simple Classic Theme has been such a great experience for me and most of it is thanks to this awesome community. Not only has it been a cool experience, I have learned an unfathomable amount of knowledge from hosting and developing the project and interacting with the community. Note that this is not a 'goodbye' from me, Leet. For now the only project I am working on is Panther2K, which is going great and it will soon get its own post on the forum as well. I have some other stuff planned as well which I have not announced yet and I will be active on ClassicServ and partially on WinClassic as well. xx Anis Original post archive:
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 either SCT Taskbar or Open-Shell and StartIsBack to emulate a Classic taskbar/start menu experience
- Enables/Disables Classic Theme with a press of a button (or command)
- Runs Classic Theme in a way that both Explorer and Immersive apps run normally, without any bad looking theme files.
- Automatically enables Classic Theme on boot-up if it was enabled before shutdown
- It can install all these utilities when requested:
- Classic Task Manager
- 7+ Taskbar Tweaker
- ExplorerContextMenuTweaker
- T-Clock
- Folder Options X
- RibbonDisabler
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 {ARGS..} You can supply an infinite number of arguments into SCT. It will first parse all of the arguments, and it will then execute them one by one. I won't cover all arguments here as there's quite a bit of them. Run SCT with --help to see an extensive list of arguments available.
Guide (RECOMMENDED)
I have put up a guide on the new (not official) WinClassic resource site:
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 the project's website
Supported operating systems: Windows 8.1, Windows 10 (version 1803+) and Windows 11 Note that Simple Classic Theme does NOT work with ExplorerPatcher on Windows 10 IMPORTANT: READ THE GUIDE BEFORE INSTALLING
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should receive a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
How do I report bugs?
NOTE: Make sure you have the latest version before reporting any bugs! Known issue: SCT 1.6.0.4 cannot install ExplorerContextMenuTweaker. This will be reworked in SCT 2.0.
|
|
|
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 ...
|
|
|
Post by leet 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.
|
|
|
Post by leet 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?
|
|
|
Post by leet 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
|
|
|
Post by leet 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?
|
|
|
Post by leet 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 www.winclassic.net/thread/328/classic-taskbar-programs-win10-links
|
|
|
Post by leet 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.
|
|
|
Post by leet 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.
|
|
|
Post by leet on Aug 25, 2019 3:49:44 GMT -8
What schemes do I have to put where?
|
|
|
Post by leet 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
|
|
|
Post by leet 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
|
|