Jump to content
argumentum

My fine tuned High Contrast theme

Recommended Posts

The newer version of Windows 10 come with, in every release, better "Dark mode" but, it never gets quite done.
So, I'm using the High Contrast theme but, the color selection interface leave much to be desired.
image.thumb.png.de9561701805e6e43f4a954897302f27.png

Hence this "Fine tuner" for the theme: ( mouse over, will show a tip of what a column of controls are for )

Next in line is to have a preview but I'll need some help ( requested here ), to get it done. Solved

 

Is functional as is. If you change a color with the windows interface, you can later fine tune it with this.

Edit1: Changed the criteria: Is now a "MyFineTuned.theme". The other trend of thought had basic problems. This is a better approach.

Edit2: still incomplete but more functional. Still looking for a way to get the title colors for Win32 GUI right  Done.

The files are now in the downloads section

MyFineTunedHCT(0_2019_12.11).png.7db1614.

 

Edited by argumentum
brainstorming

Share this post


Link to post
Share on other sites

Very handy tool.

A BIG THANK YOU.

ps.
When you release next version please upload them here:

https://www.autoitscript.com/forum/files/category/20-windows/

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2019-10-01

Share this post


Link to post
Share on other sites

I just try to add:

GUICtrlCreateEdit("Disabled", $iLeft + 50, $iTop + 300, 100, 25, $ES_CENTER) ;, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_STATICEDGE)
    GUICtrlSetTip(-1, "GUICtrlCreateEdit() Disabled")
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetColor(-1, _HCTcolor_Name2Color("InactiveTitleText"))
    GUICtrlSetBkColor(-1, _HCTcolor_Name2Color("Window"))

To show how I can change colors of disabled EDIT Control.
But I do not find out how to change them in current windows theme.

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2019-10-01

Share this post


Link to post
Share on other sites
7 minutes ago, mLipok said:

But I do not find out how to change them in current windows theme.

That too needs coding. For now is all arrays but will need to use a script.dictionary to map the IDs and not cycle though an array to get the ID of a control, as in this trend of thought/idea/technic, there will be a lot of controls.

...so the GUICtrlCreateEdit("Disabled", will have to have a $var = GUICtrlCreateEdit("Disabled", to be able to assign the colors when updated/changed in the corresponding type. 

It'll take time. I went this far but the preview is gonna be very time consuming, and I have to get back to work or I'll get in trouble.
The preview is not a must, as applying a new set of color is quite fast ( if there are not a lot of GUIs running ) and restoring is just as fast.
Is usable as is, tho, a preview is candy.   I love candy :) 

Share this post


Link to post
Share on other sites

Will it be easier to do when I save current theme for example as "..Local\Microsoft\Windows\Themes\MY.theme" load them and using your tool change only "Disabled" EDIT Control ?.... If Yes ... How I should do that using your tool ?


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2019-10-01

Share this post


Link to post
Share on other sites

btw.
Why do you use @GUI_CtrlId in this following  way

Local $_CtrlId = Execute("@GUI_CtrlId")

Instead:

Local $_CtrlId = @GUI_CtrlId

?

 

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2019-10-01

Share this post


Link to post
Share on other sites

well, ...this tool does not build a theme, just changes the colors ( of hcblack.theme ), and the colors are saved in the script's theme file, only for High Contrast.
If you wanna change a "regular" theme, this tool does not do it, nor can, as those are msstyles. ( tho I wish I could but I don't know how, tho w/o 3rd party tools do skinning ).
Other than that, click around. You can not damage your PC with this tool.
Each control has a CtrlTip, that I hope is sufficient guidance, else, help me as am not good at it :( 
I'll add a "Save current theme as" in a future version, it it'd be handy to keep the color selections that the user liked. it would be saved in a subfolder of the script folder, to keep it portable. If you have ideas about this, share :) 

@GUI_CtrlId is available when clicking a control in a form. To be able to call the function independently and not raise an exception due to the lack of available Macro, Execute() will either return the value or zero if not available ;) 

Share this post


Link to post
Share on other sites

Newer version ( 0.2019.12.07)

added a color tweaker that correlates RGB and HSL and one can tweak more than one color at once, so that is cool.
 

Also added a color picker of sorts that I call it "pixel observer" (as that is what it does).
At times to make this code, I need to get the pixel color but an not mouse over it, so, had to put something together to do just that.
MyFineTunedHCT(0_2019_12.07b).png.83ee59343ea417f7757e733b878ad782.png  MyFineTunedHCT(0_2019_12.07c).png.549cd9900b9e18e0853a86f6d68e62cd.png

..in the pics above you an see the need to not mouseover as the pixel color would change.
When calling the pixel observer from the interface ( clicking "[ C ]" ), it'll highlight when matching colors. And that was handy for coding this.
There is a pixel distance option that also came handy for coding the preview.

Here is the text for the help screen:

Spoiler

   Help: 
     
     Pressing J toggles this help screen, X will exit.
     Pressing C or SHIFT will copy the color to the clipboard,
       but SHIFT will work w/o a focused app. .
     Pressing 1 to 7 will change the distance between the
       observed pixel and the cursor.
     Pressing W, A, S, D, will change the side the data
        is shown at.
     Press the any arrow key to move 1 pixel at the time,
        while pressing CTRL will step 10 pixels.
     Press M to measure pixel distance.
     Press Z to change magnifier zoom.
     Press H to hide the app., activate to unhide.
     Press P to cycle the cross' center hole aperture.
     Press T to cycle solid and transparencies of app. .
     
     This window is passthrough, if you click, it will click
       the screen below the cursor. Same goes with typing.
     
     Pressing PAUSE or arrow keys LEFT and RIGHT at 
       the same time or X2 mouse button will set 
       this app. to active, where you can use any of
       the keys described above.
     
     Pressing arrow keys UP and DOWN at the same time, 
       will exit, without having to activate this app. .
     
     NOTE: some windows will not pass along the keyboard,
       in that case, click the desktop, then press the keys.
     
     That's it.


...among the things that I'd like to try is to do the preview in GDI+. I believe it would not flash as this one does. But I feel is good enough as is, as far as functionality. But I'll have to pick this up later next year.

If you have any ideas I did not think of and is within my ability, I'll look into it when I get back to this code.

 

The files are in the downloads section.

Edited by argumentum

Share this post


Link to post
Share on other sites

Newer version ( 0.2019.12.09)

added:

  • a Control Panel like to the preview.
  • drag'n'drop theme file on preview.
  • pass a theme file via command line.
  • copy or paste, colors via the clipboard ( I use it for RDP ).
  • moved all the external files to within the executable.

todo: matching colors in WinForm for min/restore/close, etc.

The files are in the downloads section.

Share this post


Link to post
Share on other sites

What's New in Version 0.2019.12.12
fixed: created custom theme path if none existed
added to load the colors of other HCT into preview, when not loaded by this app. or app's theme is not default.
added to set the app. TOPMOST
added GUI accelerators / short cut keys
added: drag'n'drop a theme or as command line lo load it.
added: change/view a color live on the environment ( for colors not in the preview )

The files are in the downloads section.

Share this post


Link to post
Share on other sites

Did you already look here:
HKEY_CURRENT_USER\Control Panel\Colors
HKEY_CURRENT_USER\Control Panel\Desktop\Colors

?


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2019-10-01

Share this post


Link to post
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...