Author Posts

December 8, 2017 at 8:14 pm

Are there any PowerShell commands / features to alter display settings? In particular, I am trying to automate the toggling of the new HDR settings in Windows 10 FCU described here:

https://support.microsoft.com/en-us/help/4040263/windows-10-hdr-advanced-color-settings

December 9, 2017 at 10:25 pm

The are no built-in PoSH cmdlets, functions to address this that I am aware of.
Looking around on the MSDN, TechNet uncovers developer specific info on HDR what it is a why, even sample code for Devs.

'msdn.microsoft.com/en-us/library/windows/desktop/mt742103%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396'
'msdn.microsoft.com/library/windows/apps/br241124'
'docs.microsoft.com/en-us/uwp/api/Windows.Media.Devices.HdrVideoControl'
'docs.microsoft.com/en-us/uwp/api/Windows.Media.Core.SceneAnalysisEffect'

But, general interaction with those settings, not something readily available.

I don't have a HDR capable device to toy with to figure out what is really possible, maybe someone else in the forum might.
Yet, it appears that you are going to have to dig at it to find a hook into it.

December 11, 2017 at 5:51 pm

Thanks! I explored some more, and it looks like this API is available:

https://docs.microsoft.com/en-us/uwp/api/windows.graphics.display.core.hdmidisplayhdroption

Now, I have to figure out if it is possible to call the UWP APIs using a PowerShell script. I have never tried that before.

December 11, 2017 at 8:50 pm

Good to see you found additional info. Ditto, on the UWP thing. Note the apps (those normally Start Menu -like things) are secure containerized apps. So, that may present an additional hurdle. PowerShell was not meant to be a GUI / interactive app controller. Other tool like AutoIT, AutoKey and the like have their own scripting implementation for such things.

Now, with what you found, if you can find an handy class available, you can use Add-Type to use it in PoSH. Yet, like we've both stated, experimentation is the path.

A quick search on the string...

'c# Windows.Foundation.UniversalApiContract sample'

Returns the following...

Windows Universal Platform SDK API contracts
'docs.microsoft.com/en-us/uwp/extension-sdks/windows-universal-sdk'

How to call UWP APIs from a desktop VB/C# app
'blogs.msdn.microsoft.com/lucian/2015/10/23/how-to-call-uwp-apis-from-a-desktop-vbc-app'

Using Windows 8* WinRT API from desktop applications
'software.intel.com/en-us/articles/using-winrt-apis-from-desktop-applications'