4

I'm using Windows 10 and currently, I specifically set for each app, the HIGHDPIAWARE (high-DPI scaling) attribute in registry key which is found in :

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

With these values :

enter image description here

But I really don't want to specify each app for that feature.

Question:

How can I make all apps to be HIGHDPIAWARE?

phuclv
  • 26,555
  • 15
  • 113
  • 235
Royi Namir
  • 5,598
  • 14
  • 47
  • 70

1 Answers1

3

You can't. Old applications cannot be made high-dpi aware without any changes, because that needs the app to use the newer high-dpi APIs. Apps must declare themselves as high-dpi aware via a manifest file or some API calls, otherwise Windows will scale them bitmap-wise which makes them blurry. That's what the above registry key is about. The detail settings are like this

  • HIGHDPIAWARE: Disable Display Scaling on High DPI Settings - Scaling performed by: Application (Win7/10)
  • DPIUNAWARE: Scaling performed by: Application (Win10 build 15002+)
  • GDIDPISCALING DPIUNAWARE: Scaling performed by: System (Enhanced) (Win10 build 15002+)

https://ss64.com/nt/syntax-compatibility.html

In fact that key is exactly the same as the dpi-override settings in compatibility tab if you open the *.exe file's properties

So setting HIGHDPIAWARE in ...\AppCompatFlags\Layers doesn't automatically make your app hi-dpi aware. It just makes Windows thinks that the app is hi-dpi aware and disable scaling. The app is shown at 100% scaling so it'll be smaller on high-dpi displays, but the result is sharper

Of course you can set the flag for multiple apps at once, but it's not the way to solve your issue. Overriding high-dpi settings for all apps may make real high-dpi aware apps misbehave

See also

phuclv
  • 26,555
  • 15
  • 113
  • 235
  • @Stefan the question is "How can I make all apps to be HIGHDPIAWARE?" and the answer is **you can't** without modifying the source code of the application. If you have any questions kindly post a different one. But if you want to show all apps at 100% then there's no scaling being applied. If you just want to show an app at 100% then it's absolutely irrelevant to making the app hidpi aware, it still has no idea of hidpi displays and is just being rendered at 100% dpi – phuclv Jun 25 '20 at 01:44
  • 2
    The question is how to make programs "`HIGHDPIAWARE`", not "high-DPI aware". Enabling that flag tells Windows to not automatically scale the program (making it blurry), even if it's not actually DPI-aware. Enabling it for all programs (by setting a global environment variable) disables automatic scaling for non-DPI aware programs, but DPI-aware programs are unaffected. –  Jun 25 '20 at 02:43