none
How to force dpi scale factor to 100% on win10 computer from GPO or from ur C++/C# software

    Question

  • Hi

    We would like to force the scale factor to 100% on the screen linked to the win 10 computer where our product is installed...But we Don't find how to do that in C++/C#

    with winuser.h we succeed to retrieve the information of the scale factor but not to change it to 100% especially

    we are the only software launched on the computer...the computer is dedicated to our software. When we link the screen to the box and the resolution is too high Windows put automatically the scale to 150% but we want to force the 100% everytime we Don'twant to let Windows to adapt the DPI (because we broadcast Something on the screen and we Don't need to have more than 100% otherwise it is not broadcasted correctly), so we need to stop the auto scaling or to force the 100% when our soft is launched.


    and we need to modify dpi directly because we need that the dpi is 100% for our process but also for IE process that we can use.

    does anyone already do that?

    thanks

    Thursday, December 6, 2018 3:04 PM

All replies

  • You can change it with  SystemParametersInfo and SPI_SETLOGICALDPIOVERRIDE

    (tested on Windows 10);

    Thursday, December 6, 2018 5:39 PM
  • Before you spend more time on thinking about this, have you thought about doing something simpler?

    First of all, the scaling is controlled by the display settings.

    Is setting this to 100% not an option?

    Secondly, remember that video playback software would also face this kind of issue, and the way they tend to fix this is by enabling high dpi support in their application. You can either set this by either setting something in your application's manifest or use functions like SetThreadDpiAwarenessContext.

    Enabling high dpi support gives you full control over the size of the window. Windows itself will not do any scaling. So for video playback software, the size of the window created for a 1080p source will be a bit larger than 1920 pixels wide and a bit larger than 1080 pixels high. The extra size goes into the window border, title and the like.


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    • Proposed as answer by Tim Roberts Friday, December 7, 2018 8:22 PM
    Thursday, December 6, 2018 6:26 PM