Night vision mode on Windows

I am the author of a Xojo-based astronomy application that runs on Mac and Windows. For astronomers using the application on a laptop at the telescope it’s important to dim the screen and tint it red (or green) so that one’s dark adaption is not disturbed too badly when moving between telescope and laptop.

To that end I added a “night vision” feature to the application. Thanks to Einhugur’s GammaLib plugin, this works flawlessly on the Mac, allowing the entire screen (or screens) to be dimmed and colored red or green. However, this does not work on Windows. Either the plugin doesn’t work at all, or the changes to the gamma settings are minimal and depend on video card settings, and video card type.

So, I’m looking for a method of coloring the contents of the screen to tones of dark red (say) on Windows, that require minimum amounts of effort. i.e. I don’t want to color individual controls on the screen, many of which resist such coloring (I should know: I tried this 20 years ago when there was a now-deprecated way of doing it in the Windows API, but now does not work for many Windows-native controls).

In an iOS app of mine I do this by putting a semi-transparent red-colored window over the whole screen and make it let finger touches pass through to the UI below, but I don’t think this is possible in Windows.

Any suggestions?