|
Post by R.O.B. on Aug 25, 2019 23:33:58 GMT -8
Edit 2024/02/20 - Added brief instructions on how to import the UIFILE resources using Resource Hacker. Edit 2024/02/22 - Fixed issue where importing would result in duplicate resources. By now, most people are aware that certain Control Panel pages simply don't work with the classic theme on Windows 8+ and that's just something that we have kind of lived with for the past few years. Well, I am happy to say that we don't have to put up with this any longer, as I have fixed all of the broken Control Panel in Windows 8.1! Here is what they look like: (I wasn't able to test this one, since I don't have a Work Folders server. Please let me know if you encounter any issues. I even fixed a couple of pages that were functional, but had some style issues with the classic theme: You can find a download for these fixes attached to this post. Some of theme might even work with Windows 10, although the only one I've actually tested with it is "Personalize", so I'm not going to promise that. Edit: Further testing has shown that this does indeed work on Windows 10. To apply these, open the respective DLL files in Resource Hacker, go to "Action" > "Add from a Resource file (*.res, *.mui, *.dll,*.exe) ...", select the appropriate .res file, and mark the UIFILE checkbox (make sure you select overwrite under "Duplicates" when importing the resources as well). My next post will cover what exactly was causing these to break, and how I went about fixing them. Win8_Fixed_Control_Panel_Pages.zip (64.9 KB) OLD DOWNLOADWin8_10_Fixed_Control_Panel_Pages.zip (66.36 KB)
|
|
|
Post by R.O.B. on Aug 25, 2019 23:34:08 GMT -8
So, why did these particular pages fail to load? Well, the answer to that would be a single style property known as dtb, which is an acronym for "DrawThemeBackground". The dtb property draws themed elements, such as buttons, checkboxes, listview controls, etc. The only problem is that, while it works wonderfully with visual styles, it has zero support for the classic theme. In most cases, just one dtb property is all it takes to prevent a UIFILE from loading with the classic theme. The way Microsoft got around this in Windows Vista/7 was by utilizing two other properties: themeable and dfc. Themeable is a property that I have quickly grown to love. In a nutshell, it acts as a condition for which styles should be used if visual styles are enabled or not. If you're familiar with creating complete themes for Firefox (pre-Quantum), it's a bit similar to the -moz-windows-theme and/or -moz-windows-classic media queries. The other property is dfc, which stands for "DrawFrameControl". This property is almost like the opposite of dtb, in that it will only draw elements that are styled for the classic theme. One big thing that sets it apart from dtb though, is that it won't break things if visual styles are active. So, it can be used to draw unskinned/classic elements even when visual styles are enabled. Here are some examples of how these properties can be used: It's worth noting that there may be other properties besides dtb that cause things to break with the classic theme, however we haven't come across anything like that yet. In general, dtb is the most likely culprit by far. The biggest exception to this is with Metro-based UIFILEs, which appear to break for completely different reasons. We're still trying to figure out what the deal is with those, but I'll update if we make any major breakthroughs with them. Now, I'm sure many of you are wondering if the same method can be used to fix any of the major problems with Windows 10. And the answer to that is, unfortunately, no (at least not at the moment). I've already explained the issue with Windows 10 in my thread about converting binary UIFILE resources to editable DUIXML, so I'll leave a quote from that thread here: Anything that uses a traditional UIFILE is fixable 99.9% of the time. This includes things like Task Manager (obviously) and the broken Control Panel pages (working on those right now as well). It's with the Metro/Immersive stuff where things start to get messy, and it's only gotten worse with Windows 10. If I'm not mistaken, a lot of that is XAML based, which is a completely different ballgame when it comes to fixing things with the classic theme. I'm not even sure if it's possible yet, and even if it is, I would have no clue where to start. Thing is, since that never really officially co-existed with the classic theme (unlike UIFILEs), I would have absolutely no point of reference, outside of maybe WPF. And even then, I think even a pretty big stretch. With that being said, however, if the XAML issue can be resolved, then I'm pretty sure we should have no problem fixing the majority of issues with the classic theme on Windows 10, including the taskbar, the immersive context menus, and UWP apps (including the Settings app). So for the time being, we still don't have a fix for Windows 10's UI issues, but we'll post an update if that changes. With all that finally out of the way, I hope you all enjoy, and don't hesitate to report any issues that you come across.
|
|
|
Post by anixx on Aug 26, 2019 1:33:53 GMT -8
Great! Maybe it would make sense to put all the modified dlls into an archive?
|
|
|
Post by anixx on Aug 26, 2019 2:08:58 GMT -8
Everything works but I noticed that in some files it replaced existing resources while in others added new resources "0" along the existing "1033".
|
|
|
Post by s34642542 on Aug 26, 2019 3:44:40 GMT -8
This is great news. How do you run these .res files? Does this mean we don't need Legacy Task Manager anymore?
|
|
|
Post by powerplayer on Aug 27, 2019 0:35:29 GMT -8
Who knows maybe this kinda modding is exactly what could fix the metrofied desk.cpl in win10 i mean he managed to kill it in 8 , thing is we would need win10 files from before they killed off the cpl'sto put there once the metro instruction is killed
|
|
|
Post by R.O.B. on Aug 28, 2019 23:06:36 GMT -8
Great! Maybe it would make sense to put all the modified dlls into an archive? Everything works but I noticed that in some files it replaced existing resources while in others added new resources "0" along the existing "1033". Aw jeez, you're right. I guess the .res format doesn't support language-specific resources. The reason I didn't just package the DLLs was to avoid issues with different versions. I'll look into another solution when I have the time. This is great news. How do you run these .res files? Does this mean we don't need Legacy Task Manager anymore? You don't actually run them, you import their resources to the appropriate DLL file. Use Resource Hacker to open the DLL, then go to Action > Add from a Resource file (*.res, *.mui, *.dll, *.exe). From there, you just need to open the .res file, and select the resources you want to import. Make sure you create a backup copy of the original, unmodified DLL files before replacing them. This can not be stressed enough: save yourself the headache in the event that something goes wrong.Also, in regards to the modern Task Manager, I have a fix for that in this thread. Only for Windows 8.1 at the moment, unfortunately.
|
|
|
Post by powerplayer on Aug 29, 2019 6:54:20 GMT -8
Rob have you tried to put these win8 edits into the win10 files?
|
|
|
Post by anixx on Aug 29, 2019 8:01:29 GMT -8
Aw jeez, you're right. I guess the .res format doesn't support language-specific resources. Yet, everything works well...
|
|
|
Post by link12765 on Aug 29, 2019 9:09:51 GMT -8
Would you mind specifying which dlls need to be modified in order for this to work? Thank you
|
|
|
Post by s34642542 on Aug 29, 2019 9:11:52 GMT -8
Great! Maybe it would make sense to put all the modified dlls into an archive? Everything works but I noticed that in some files it replaced existing resources while in others added new resources "0" along the existing "1033". Aw jeez, you're right. I guess the .res format doesn't support language-specific resources. The reason I didn't just package the DLLs was to avoid issues with different versions. I'll look into another solution when I have the time. This is great news. How do you run these .res files? Does this mean we don't need Legacy Task Manager anymore? You don't actually run them, you import their resources to the appropriate DLL file. Use Resource Hacker to open the DLL, then go to Action > Add from a Resource file (*.res, *.mui, *.dll, *.exe). From there, you just need to open the .res file, and select the resources you want to import. Make sure you create a backup copy of the original, unmodified DLL files before replacing them. This can not be stressed enough: save yourself the headache in the event that something goes wrong.Also, in regards to the modern Task Manager, I have a fix for that in this thread. Only for Windows 8.1 at the moment, unfortunately. Which DLL file (and where is it located)?
Is there any way you can just post the DLL files that have already been patched? I'm not very good at this.
|
|
|
Post by R.O.B. on Aug 29, 2019 12:39:49 GMT -8
The DLLs are located in System32, and the you can find the specific DLLs based on the file names of the .res files. For example, accessibilitycpl_UIFILE.res would correspond to accessibilitycpl.dll. So to apply the fix, you'd want to copy that DLL file to a working directory, make the changes to it in Resource Hacker, backup the original accessibilitycpl.dll file, and copy the modified one in its place. You will most likely also need to take ownership of the original DLL file in System32 before replacing it as well. Rinse and repeat for all the other DLL files, and you should be good to go. Aw jeez, you're right. I guess the .res format doesn't support language-specific resources. Yet, everything works well... View AttachmentI'm glad to hear that, although I still think it would be good to try to solve that issue. There's no reason there should be duplicate resources.
|
|
|
Post by s34642542 on Aug 31, 2019 2:02:01 GMT -8
Edit: Ignore what I said before, I've got it working now. Thanks so much R.O.B., this has made the user experience 10x better for me.
|
|
gcomputzide
Sophomore Member
As gcomputing goes on, it comes to the zide.
Posts: 150
OS: Windows 10 1909
Theme: Classic Theme (Winamp 3.0)
CPU: Asus K53E: Intel(R) Pentium(R) CPU B950 @ 2.10GHz
RAM: AMD 8 GB, QUMO 4 GB
GPU: Asus K53E: Intel HD Graphics 3000
|
Post by gcomputzide on Aug 31, 2019 6:58:03 GMT -8
Is it work on W10?
|
|
pietr
Freshman Member
Posts: 29
|
Post by pietr on Dec 27, 2019 4:25:27 GMT -8
|
|
gcomputzide
Sophomore Member
As gcomputing goes on, it comes to the zide.
Posts: 150
OS: Windows 10 1909
Theme: Classic Theme (Winamp 3.0)
CPU: Asus K53E: Intel(R) Pentium(R) CPU B950 @ 2.10GHz
RAM: AMD 8 GB, QUMO 4 GB
GPU: Asus K53E: Intel HD Graphics 3000
|
Post by gcomputzide on Sept 19, 2020 4:03:59 GMT -8
display seems not work for me
|
|
|
Post by cyclicpoet44782 on Mar 1, 2023 6:01:35 GMT -8
¿does this work with windows 11 22h2?
|
|
|
Post by OrthodoxWin32 on Mar 1, 2023 9:59:24 GMT -8
¿does this work with windows 11 22h2? Hello cyclicpoet44782, and welcome to the Winclassic forum ! I do not think because it does not work in Windows 10 21h2. It would be necessary to redo the manipulation with the resources of the pages of Windows 10 or 11.
|
|
Jevil7452
Regular Member
Posts: 437
OS: Windows 7 Enterprise (6.1.7601)
Theme: Windows Aero by Microsoft Corporation
CPU: Intel Core i7-3770k
RAM: 32GB (4x8GB DDR3)
GPU: NVIDIA GeForce GTX 980 Ti + Intel(R) HD Graphics 4000
Computer Make/Model: OEM0
|
Post by Jevil7452 on Mar 1, 2023 12:27:57 GMT -8
¿does this work with windows 11 22h2? Hello cyclicpoet44782 , and welcome to the Winclassic forum ! I do not think because it does not work in Windows 10 21h2. It would be necessary to redo the manipulation with the resources of the pages of Windows 10 or 11. It works for me on 10 20h1 (which is close enough to 21h2) The only issue I did notice is that UIFile 1 of Display.dll will make it crash when you go to the main page of Display properties in Control panel, but you won't even have to worry about that if you haven't restored the classic Display control panel But they said Windows 11, in which case, yes, it's possible these don't work
|
|
|
Post by OrthodoxWin32 on Apr 29, 2023 11:06:11 GMT -8
Jevil7452 I tried, it actually works. I think I had done something wrong in the past. So, I didn't try on SensorsCpl and Display, because I use your method to get applets from previous versions, and it works. I don't know if it's possible to do the same thing for UserLanguagesCpl, which has also been removed in the meantime.
|
|