Vista/7 – How to Lie About DPI Without Scaling

high-dpiwindows

In Windows Vista and Windows 7, it is possible to lie to applications about what the current horizontal and vertical DPI setting is.

Background: The "normal" setting on Windows is 96dpi. Most applications
do not handle the user having a
preference different from the
developer's preference. Starting with
with Windows Vista, Microsoft worked
around the buggy applications, and
decide to lie to them – but scale them
up graphically.

So Windows already does have a mechanism to lie to an application about what the current DPI setting is; always returning 96. Windows then using the video card to scale the final composited window up to the appropriate size.

i have an application that thinks it can handle high-dpi mode, but really it cannot. So i want to Windows to lie to this app. But at the same time i use the app all day, typing in screenfuls of text. The scaling applied by the desktop compositer leaves the text fuzzier, and unpleasant to read.

Is it possible to lie to an application about the DPI setting, but not have dpi scaling applied?

See also

Best Answer

i asked Chris Jackson, the AppCompat guy. He said:

We don’t have such an ability, the scaled mode is what we have to handle those situations. Yes, there clearly are some things that are suboptimal about how we do that (I hate the fuzzies too), but it’s hard to get a second fix approved which technically solves the same thing since that means that engineer isn’t doing something else to make the world a better place.

So, Chris, if you ever join SuperUser - you can get credit for your answer.