Changing system colors for a single application (Windows, .NET)
- by Michal Czardybon
I know I should generally avoid messing up with such system settings, but my application do already use nonstandard colors and I have no influence on that. I would like to be able to add standard .NET controls in some places, but their colors do not match. I would like to have a hack that would replace system colors for this one application. One more important thing to note is that it is a .NET application.
My (incomplete) ideas so far were:
To create a proxy User32.dll library with replaced GetSysColor, but it would be very tedious (731 functions to be redirected, 1 to be replaced) and I do not know how to force my application to use that particular copy.
To intercept somehow invocations to GetSysColors (unfortunatelly it is somewhere in the CLR I think).
To modify somehow .NET class SystemColors (in memory? is it possible?).
Do you have any idea, what is the best (and complete) way to achieve this?