Jump to content

Recommended Posts

Posted

Hello dears,

I'm trying to write a script in AutoIT but, I have issue in DPI. I'm basically a Lead Software Developer and I use AutoIT from time to time. I have an ERP Launcher that should work on all machines starting by Windows 7, Windows 8.x , Windows 10, Windows Server 2003/2008/2012.

When I was searching in AutoIT forum, I could see previously this " Writing DPI Awareness App - workaround" in the signature of Mr. @mLipok,, but clicking on the link, => page not found.

Do you have any new link or something that you can share with me ? I'm using macbook pro with retina display and VMware machines: Windows 10 and Server 2012 as development machines, but both of them they have 200% scaling and they have AutoIT installed. In this case, when I use Koda (blurry font for sure), I have the controls as I want, and application is working fine, but also blurry font, until it is used on 96 DPI machine.

Now, in windows 10, with DPI System Enhanced feature in the compatibility tab, the application running on 200% scaling is excellent visual like it's running on 96 DPI without touching my code and without doing anything, but no all clients they have windows 10. It seems Microsoft worked a lot on the new feature. But for other machines like windows 7/8/2012, the font is blurry if the clients have scaling above 100% (more than 96 DPI). I know how to enable hidpi stuff in the wrapper and I know how to write the code to use a scaling factor that can be multiplied by every coordinate, but this way is cumbersome and I have to change all coordinates of all X, Y, Width, Height after getting the code from Koda. Is there a fast way ? 

So, what do you recommend me guys ?

Thanks,

Jowy

Posted
  On 2/18/2018 at 12:10 PM, Subz said:

Does the following registry key equal 192 (200% DPI)?

RegRead ("HKEY_CURRENT_CONFIG\Software\Fonts", "LogPixels")
Expand  

On windows 10 (my development machine) it's 96 and the scaling is 200% kindly find attached screenshot:

200-Scale-96.png

Posted

Actually might be barking up the wrong tree here, the key refers to the font scaling, i.e. under Advanced display settings » Advanced sizing of text and other items » Set a custom scaling level, which allows you to change the font scaling to match screen dpi, but I'm guessing you're not after this.

 

Posted
  On 2/18/2018 at 12:31 PM, Subz said:

Actually might be barking up the wrong tree here, the key refers to the font scaling, i.e. under Advanced display settings » Advanced sizing of text and other items » Set a custom scaling level, which allows you to change the font scaling to match screen dpi, but I'm guessing you're not after this.

 

Expand  

As far as I know , the AppliedDPI is the one showing the scaling... 

Screen Shot 2018-02-18 at 4.10.32 PM.png

Posted (edited)
  On 2/18/2018 at 1:11 PM, Jowy said:

As far as I know , the AppliedDPI is the one showing the scaling... 

Screen Shot 2018-02-18 at 4.10.32 PM.png

Expand  

Now, applying the example with the following and building the Example, check please the following screenshot: the 2 windows is small, one I replied yes for DPI awareness and the other I answered no. I run the exe file from explorer. But if I run through the editor with F5 (with GO option), and since the editor is not DPI aware, for sure you will have same results whether you say yes or no for DPI.Screen Shot 2018-02-18 at 4.15.07 PM.png

 

Edited by Jowy
Posted (edited)
  On 2/18/2018 at 1:23 PM, RTFC said:
Expand  

Hello @RTFC, I have tried the code inside, but it's giving me null for width and height... Anyway, it seems I'll go back for the workaround of scale factor multiplied by each x,y,w,h... , in the workaround, I can at least stretch even the window width on hi-dpi screens.

Screen Shot 2018-02-19 at 8.02.22 AM.png

Edited by Jowy
Posted

STOP posting screenshots of your code, post the code. By posting screenshots, you're making it so that everyone testing this has to retype your code instead of copy-paste. You're going to get a lot less people willing to help you.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

  Reveal hidden contents

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

  • Moderators
Posted

Jowy,

As BrewManNH has asked above, please use Code tags to post your code - see here how to do it.

M23

 

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted
  On 2/19/2018 at 2:10 PM, Melba23 said:

Jowy,

As BrewManNH has asked above, please use Code tags to post your code - see here how to do it.

M23

 

Expand  

Thanks Melba, it wasn't interesting code actually, it was the examples and codes from other links proposed from guys in the forum and from the Examples code that comes with AutoIT. Next time, I'll put the code.

Posted
  On 2/19/2018 at 2:06 PM, BrewManNH said:

STOP posting screenshots of your code, post the code. By posting screenshots, you're making it so that everyone testing this has to retype your code instead of copy-paste. You're going to get a lot less people willing to help you.

Expand  

Sure Next time will put the code,  it wasn't interesting code actually, it was the examples and codes from other links proposed from guys in the forum and from the Examples code that comes with AutoIT. Next time, I'll put the code. I was only showing the DPI resolution difference.

  • 2 months later...
Posted

LOL on posting code screenshots :lol:

So sad, to this day i cant find a working simple solution to DPI problem.

Just because i know the scaling factor, does not make built in Pixelsearhch function to work.

I think its a bug. If pixelsearch reports incorrect coordinates, its a bug

Posted

@tonycst:  Fully supporting DPI settings is one of the toughest, most convoluted problems I've come upon with Au3 GUIs.  Blurry graphics and enlarged text are just the basic aspects to solve—and are the ones some of the forum posts have "solved".  But then you move to cursor coordinates.  And when you think you have things in hand, try your GUI on a tablet PC that swaps everything to a vertical orientation when you rotate the tablet.  The real topper is a dual monitor system where the monitors are running at different resolutions.

Last week, I happened upon the following observations and conclusions:

  Quote

"DPI unaware applications render as if the screen that they are on has a DPI value of 96. Whenever these applications are run on a screen with a display scale greater than 100% (> 96 DPI), Windows will stretch the application blurry."

http://www.kynosarges.org/WindowsDpi.html
HOWEVER, Windows 10 “Creators Update” largely eliminated the various application issues discussed in this (above) article.  Read this, instead:

http://news.kynosarges.org/2017/04/16/dpi-settings-in-windows-10-creators-update/
"Windows 10 started its journey to simplified display settings with an awkward combination of dialogs in the modern Settings app and the legacy Control Panel, as described in my previous post on the subject. With the recently released “Creators Update??? (version 1703) the journey appears to have reached its destination. All display settings, including all DPI settings, are now exclusively handled by the Settings app and have been further streamlined as well."

 

Expand  

Now, I'll quickly admit that I have yet to make corresponding adjustments to my GUI scripts.  But, I'll proceed with these new roadmaps in hand.  It's encouraging that there's been some progress from the operating system side.  As a first step, I'm back experimenting the the DPI Aware setting for GUIs on Win10.  But then I have Win7 and Win8 environments to consider.

Hope this helps.

 

Posted

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...