Overriding High DPI Scaling from the Command Line

9

7

I am compiling and building an OpenCV app on Windows 10, which shows some images.
I want to overrride the high DPI scaling behavior and set it to "Application".

I can do this fine on the .exe file by: Right-Click->Properties->Compatibility Tab and checking the checkbox.:

enter image description here

Is there a command line tool I can use to do that as part of a script?

Adi Shavit

Posted 2017-07-16T12:29:34.410

Reputation: 365

Answers

10

You make a bat file script.

Things to change in commands

Make sure where the application is Placed

If the application is 64 bit "%programfiles%\<appfoldername>\<app>.exe"

If the application is 32 bit "%programfiles(x86)\<appfoldername>\<app>.exe"

~HIGHDPIAWARE Indicates value of Override high DPI scaling behavior (Application)

~DPIUNAWARE Indicates value of Override high DPI scaling behavior (System)

"~GDIDPISCALING DPIUNAWARE" Indicates value of Override high DPI scaling behavior (System Enhanced) add double quote also

I am doing this for Itunes (64 bit).

Particular User

REG ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /V "%programfiles%\iTunes\iTunes.exe" /T REG_SZ /D ~HIGHDPIAWARE /F

All User

REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /V "%programfiles%\iTunes\iTunes.exe" /T REG_SZ /D ~HIGHDPIAWARE /F

Techie Gossip

Posted 2017-07-16T12:29:34.410

Reputation: 652

So the Win10 prop-dlg actually generates a registry entry too? – Adi Shavit – 2017-07-16T13:08:36.977

yes. i have tested in windows 10 it worked. its registry to be changed – Techie Gossip – 2017-07-16T13:10:41.357

1

Thanks! Will check. Based on your answer I found this from MS which essentially says the same thing :-).

– Adi Shavit – 2017-07-16T13:16:29.123

1On Windows 10, I needed a space between the tilde and the dpi scaling value -- "~ DPIUNAWARE" – Brendan Abel – 2019-06-28T16:27:04.800

From @AdiShavit MS link and my own experimentation, "Note that there is a space between the tilde and the HIGHDPIAWARE." – rjt – 2019-07-04T21:57:40.687

0

Following the previous advice I added the reg value HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers with a value of ~ DPIUNAWARE including the space after the tilde.

However, it turned out that this DOES NOT work, UNLESS I set and remove the corresponding setting for the current user in HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.

So my solution follows those above but requires the HKCU key to be set and reset in advance.

Reinhard Mayr

Posted 2017-07-16T12:29:34.410

Reputation: 1