The easiest way to change the skin of the GUI - skinsharp
The easiest way to change the skin of the GUI - skinsharp
Advantages.
1. Change skin only need 1 line of code.DllCall("SkinH\SkinH_AttachEx", "Str", "skinh.she")
2. Separate skin and code.
2. ansi and unicode32 both have trial version.
3. The trial version only adds a small extra copyright image to the interface.
Disadvantages.
1.x64 has no trial version.
If you know other better ways - such as completely free or x64-supported - please let me know.
Download:https://github.com/telppa/skinsharp/releases
Re: The easiest way to change the skin of the GUI - skinsharp
@tuzi
I've been able to partially reskin all windows system-wide using my Screen Dimmer app (its v2-only, but also compiled version is on GitHub in case you want to test out the skinning feature without installing AHK v2). If you use my app, look under background modes to change individual system elements partially, and use background themes to change system elements completely. My app only covers COLORS and not changing the windows to different styles like in the screenshots shown above.
Here is an excerpt of the background modes code in my app that might be useful to you:
the app uses a radio control to activate each mode, but i'm sure you can take what you need.
As you may notice, you dont require any dependencies (DLLs or 3rd party software) for this - just support for the WIN APIs. There are ways to reskin like how you are showing above without downloading other DLLs or 3rd party software, but I wasn't able to figure it out since it appeared to be a very complicated process.
For the themes aspect, I hardcoded .theme files to be high-contrast themes in order for it to allow complete color reskinning - additionally it allows the background mode changes to go from partially skinning to complete skinning. Feel free to reach out with questions. On a side note, I'll be releasing a new version of my app later this month with a better UI if you like its features.
Cheers.
I've been able to partially reskin all windows system-wide using my Screen Dimmer app (its v2-only, but also compiled version is on GitHub in case you want to test out the skinning feature without installing AHK v2). If you use my app, look under background modes to change individual system elements partially, and use background themes to change system elements completely. My app only covers COLORS and not changing the windows to different styles like in the screenshots shown above.
Here is an excerpt of the background modes code in my app that might be useful to you:
Code: Select all
ChangeBackgroundMode(radio, *){
static userBg := DllCall("user32\GetSysColor", "int", 1) ; Get user's desktop background color
static backgroundModes := Map(
"Normal" , Map(0x000000, 0xC8C8C8, 1, userBg, 2, 0xD1B499, 3, 0xDBCDBF, 4, 0xF0F0F0, 5, 0xFFFFFF, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xABABAB, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xF0F0F0, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0),
"Morning" , Map(0x000000, 0xC7EDCC, 1, userBg, 2, 0xD1B499, 3, 0xC7EDCC, 4, 0xC7EDCC, 5, 0xC7EDCC, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xC7EDCC, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xC7EDCC, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0),
"Day" , Map(0x000000, 0xABABAB, 1, userBg, 2, 0xD1B499, 3, 0xABABAB, 4, 0xABABAB, 5, 0xABABAB, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xABABAB, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xABABAB, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0),
"Night" , Map(0x000000, 0x000000, 1, 0x000000, 2, 0x595757, 3, 0x595757, 4, 0x595757, 5, 0x595757, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x595757, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x595757, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x5A5A57, 21, 0x000000, 22, 0x5A5A57, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000),
"Evening" , Map(0x000000, 0x000000, 1, 0x000000, 2, 0x222223, 3, 0x222223, 4, 0x222223, 5, 0x222223, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x222223, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x222223, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x5A5A57, 21, 0x000000, 22, 0x5A5A57, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000),
"Midnight", Map(0x000000, 0x000000, 1, 0x000000, 2, 0xC6C8C5, 3, 0x000000, 4, 0x000000, 5, 0x000000, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x000000, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x000000, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x000000, 21, 0x000000, 22, 0x000000, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000),
"Twilight", Map(0x000000, 0x000000, 1, 0x000000, 2, 0x8C3230, 3, 0x000000, 4, 0x000000, 5, 0x000000, 6, 0x000000, 7, 0x000000, 8, 0x8C3230, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x000000, 13, 0x080816, 14, 0xC04B48, 15, 0x000000, 16, 0x000000, 17, 0x808080, 18, 0x8C3230, 19, 0x8C3230, 20, 0x000000, 21, 0x000000, 22, 0x000000, 23, 0x8C3230, 24, 0x000000, 26, 0xC04B48, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000))
for displayElement, color in backgroundModes[radio.Name]
try DllCall("user32\SetSysColors", "Int", 1, "IntP", displayElement, "UIntP", color)
}
As you may notice, you dont require any dependencies (DLLs or 3rd party software) for this - just support for the WIN APIs. There are ways to reskin like how you are showing above without downloading other DLLs or 3rd party software, but I wasn't able to figure it out since it appeared to be a very complicated process.
For the themes aspect, I hardcoded .theme files to be high-contrast themes in order for it to allow complete color reskinning - additionally it allows the background mode changes to go from partially skinning to complete skinning. Feel free to reach out with questions. On a side note, I'll be releasing a new version of my app later this month with a better UI if you like its features.
Cheers.
-TL
Re: The easiest way to change the skin of the GUI - skinsharp
THis is really cool!
Is the editor written in ahk too?
Also, is it possible to change the editor language to Eng?
Is the editor written in ahk too?
Also, is it possible to change the editor language to Eng?
name := "ste(phen|ve) kunkel"
Re: The easiest way to change the skin of the GUI - skinsharp
The answer is no and no.
The skinsharp author last updated 7 years ago. But I have provided official website and some English documents in the demo.
Last edited by tuzi on 02 Feb 2021, 06:15, edited 1 time in total.
Re: The easiest way to change the skin of the GUI - skinsharp
Thank you for providing so much information. I tried your app, but perhaps because my system is a long supported version of Win10, most features are not visible changes in my case.Tigerlily wrote: ↑30 Jan 2021, 16:42@tuzi
I've been able to partially reskin all windows system-wide using my Screen Dimmer app (its v2-only, but also compiled version is on GitHub in case you want to test out the skinning feature without installing AHK v2). If you use my app, look under background modes to change individual system elements partially, and use background themes to change system elements completely. My app only covers COLORS and not changing the windows to different styles like in the screenshots shown above.
Here is an excerpt of the background modes code in my app that might be useful to you:
the app uses a radio control to activate each mode, but i'm sure you can take what you need.Code: Select all
ChangeBackgroundMode(radio, *){ static userBg := DllCall("user32\GetSysColor", "int", 1) ; Get user's desktop background color static backgroundModes := Map( "Normal" , Map(0x000000, 0xC8C8C8, 1, userBg, 2, 0xD1B499, 3, 0xDBCDBF, 4, 0xF0F0F0, 5, 0xFFFFFF, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xABABAB, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xF0F0F0, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0), "Morning" , Map(0x000000, 0xC7EDCC, 1, userBg, 2, 0xD1B499, 3, 0xC7EDCC, 4, 0xC7EDCC, 5, 0xC7EDCC, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xC7EDCC, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xC7EDCC, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0), "Day" , Map(0x000000, 0xABABAB, 1, userBg, 2, 0xD1B499, 3, 0xABABAB, 4, 0xABABAB, 5, 0xABABAB, 6, 0x646464, 7, 0x000000, 8, 0x000000, 9, 0x000000, 10, 0xB4B4B4, 11, 0xFCF7F4, 12, 0xABABAB, 13, 0xD77800, 14, 0xFFFFFF, 15, 0xABABAB, 16, 0xA0A0A0, 17, 0x6D6D6D, 18, 0x000000, 19, 0x000000, 20, 0xFFFFFF, 21, 0x696969, 22, 0xE3E3E3, 23, 0x000000, 24, 0xE1FFFF, 26, 0xCC6600, 27, 0xEAD1B9, 28, 0xF2E4D7, 29, 0xD77800, 30, 0xF0F0F0), "Night" , Map(0x000000, 0x000000, 1, 0x000000, 2, 0x595757, 3, 0x595757, 4, 0x595757, 5, 0x595757, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x595757, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x595757, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x5A5A57, 21, 0x000000, 22, 0x5A5A57, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000), "Evening" , Map(0x000000, 0x000000, 1, 0x000000, 2, 0x222223, 3, 0x222223, 4, 0x222223, 5, 0x222223, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x222223, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x222223, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x5A5A57, 21, 0x000000, 22, 0x5A5A57, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000), "Midnight", Map(0x000000, 0x000000, 1, 0x000000, 2, 0xC6C8C5, 3, 0x000000, 4, 0x000000, 5, 0x000000, 6, 0x000000, 7, 0x000000, 8, 0xC6C8C5, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x000000, 13, 0x5A5A57, 14, 0xC6C8C5, 15, 0x000000, 16, 0x000000, 17, 0x808080, 18, 0xC6C8C5, 19, 0xC6C8C5, 20, 0x000000, 21, 0x000000, 22, 0x000000, 23, 0xC6C8C5, 24, 0x000000, 26, 0xF0B000, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000), "Twilight", Map(0x000000, 0x000000, 1, 0x000000, 2, 0x8C3230, 3, 0x000000, 4, 0x000000, 5, 0x000000, 6, 0x000000, 7, 0x000000, 8, 0x8C3230, 9, 0xC6C8C5, 10, 0x000000, 11, 0x000000, 12, 0x000000, 13, 0x080816, 14, 0xC04B48, 15, 0x000000, 16, 0x000000, 17, 0x808080, 18, 0x8C3230, 19, 0x8C3230, 20, 0x000000, 21, 0x000000, 22, 0x000000, 23, 0x8C3230, 24, 0x000000, 26, 0xC04B48, 27, 0x000000, 28, 0x000000, 29, 0x5A5A57, 30, 0x000000)) for displayElement, color in backgroundModes[radio.Name] try DllCall("user32\SetSysColors", "Int", 1, "IntP", displayElement, "UIntP", color) }
As you may notice, you dont require any dependencies (DLLs or 3rd party software) for this - just support for the WIN APIs. There are ways to reskin like how you are showing above without downloading other DLLs or 3rd party software, but I wasn't able to figure it out since it appeared to be a very complicated process.
For the themes aspect, I hardcoded .theme files to be high-contrast themes in order for it to allow complete color reskinning - additionally it allows the background mode changes to go from partially skinning to complete skinning. Feel free to reach out with questions. On a side note, I'll be releasing a new version of my app later this month with a better UI if you like its features.
Cheers.
But the ability to adjust RGB & brightness directly works great!
Re: The easiest way to change the skin of the GUI - skinsharp
Thanks, I have now created a demo based on the USkin, but it still doesn't support 64-bit.lblb wrote: ↑02 Feb 2021, 01:55You might want to link to:
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=5841&hilit=gui+skin
Re: The easiest way to change the skin of the GUI - skinsharp
+1 Still looking for a 64-bit skin tool...
Author of freeware Quick Access Popup, the powerful Windows folders, apps and documents launcher!
Now working on Quick Clipboard Editor
The Automator's Courses on AutoHotkey
Now working on Quick Clipboard Editor
The Automator's Courses on AutoHotkey
Return to “Scripts and Functions (v1)”
Who is online
Users browsing this forum: No registered users and 116 guests