Modify

Opened 3 years ago

Last modified 9 months ago

#3238 assigned Feature Request

AutoIt doesn't compensate for DPI scaling

Reported by: anonymous Owned by: Jon
Milestone: Component: AutoIt
Version: Severity: None
Keywords: DPI scaling Cc:

Description

I'm using Windows 10 on a laptop with a 1920x1080 screen with standard drivers. I sit a few feet away from the laptop, so I use DPI scaling to help me see the screen easier (Settings > System > Display > "Change the size of text, apps, and other items:"). Mine is currently set to 125%.

At this 125% DPI scaling setting (or anything greater than 100%), open the 'AutoIt v3 Window Info' program, turn on the option to magnify (Ctrl + Alt+ M), grab the finder tool, and point the target at some discernible object on your screen. Unless my system is somehow unique, or off the norm, you also will not see what you're pointing at in the small magnification window. If you move the target down and to the right some, you'll stumble onto what you were originally aiming for.

This is a DPI issue with AutoIt. Please fix it.

I believe this is also why PixelGetColor does not work properly under the same circumstances (a DPI scaling setting of over 100%).

Thank you for your attention.

Attachments (0)

Change History (12)

comment:1 Changed 3 years ago by Melba23

You can make your own scripts DPI-aware as explained here:
https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/#comment-1310175

This is a "Feature Request" and will be moved.

M23

comment:2 Changed 3 years ago by Melba23

  • Type changed from Bug to Feature Request

comment:3 Changed 3 years ago by TicketCleanup

  • Version 3.3.14.0 deleted

Automatic ticket cleanup.

comment:4 Changed 3 years ago by anonymous

I promise you that this issue is not a feature request.... I've seen that post, and every other post on the AutoIt forums including the term DPI, and almost every post returned by Google ten pages deep into my searches on 'DPI scaling' and related searches that exist.

If the 'AutoIt v3 Window Info' program you distribute shows incorrect pixels in the magnify window while using the finder tool, as I've already clearly described (DPI scaling setting over 100%, point the finder tool target at something), that is a bug. If PixelGetColor returns incorrect values for any and all users who have a DPI scaling setting over 100%, that is a bug.

If you're not having these issues on your Windows system using a DPI scaling setting of over 100%, this still could be considered a bug. I don't seem to have this problem using Windows magnifier. The pixels directly under my cursor are what show up in its magnification area.

I could include DllCall("User32.dll","bool","SetProcessDPIAware") into every script I've ever written. It will not change what the magnify window shows when using the window info finder tool, nor will it return correct values using PixelGetColor using any of the PixelCoordMode settings.

Therefore, unless your solution to this problem is to require anyone using AutoIt to also not use DPI scaling, perhaps you should move this ticket back to Bug. Thanks.

comment:5 Changed 11 months ago by anonymous

<snip>

Last edited 11 months ago by Melba23 (previous) (diff)

comment:6 Changed 11 months ago by anonymous

Adding DllCall("User32.dll","bool","SetProcessDPIAware") makes the scripts aware of the DPI scaling but the AutoIt v3 Window Info does not take DPI scaling into account. To find the correct mouse position, one would need to take the position values given by the Window Info and then multiply it manually by whatever you have your scaling set to. If you have it set to 150%, then you multiply by 1.5.

Is this something that will eventually be addressed with the Window Info? Perhaps having the Window Info detect what scaling is set to or allow users to manually enter in what scaling they are using so that the mouse positions will be accurate?

comment:7 Changed 10 months ago by Alekc

Agree, this issue is very annoying.

comment:8 follow-up: Changed 10 months ago by Jos

It seems just a matter of changing the manifest of the program. I have made a trial version of the original au3info where I updated the manifest with reshacker and stored it here: https://www.autoitscript.com/autoit3/scite/download/beta_SciTE4AutoIt3/Au3Info.exe

Give it a try and let us know.

Jos

comment:9 in reply to: ↑ 8 ; follow-up: Changed 9 months ago by anonymous

Replying to Jos:

It seems just a matter of changing the manifest of the program. I have made a trial version of the original au3info where I updated the manifest with reshacker and stored it here: https://www.autoitscript.com/autoit3/scite/download/beta_SciTE4AutoIt3/Au3Info.exe

Give it a try and let us know.

Jos

Jos can you repost it. I get Not Found

The requested URL /autoit3/scite/download/beta_SciTE4AutoIt3/Au3Info.exe was not found on this server.

comment:10 in reply to: ↑ 9 ; follow-up: Changed 9 months ago by Jos

Replying to anonymous:

Jos can you repost it. I get Not Found

The requested URL /autoit3/scite/download/beta_SciTE4AutoIt3/Au3Info.exe was not found on this server.

It should be there again..

Jos

comment:11 in reply to: ↑ 10 Changed 9 months ago by Zdsl

It displays the correct pixels now but now the window is very small on high resolution monitors since it doesn't use the system-wide DPI scaling now.

comment:12 Changed 9 months ago by Jos

  • Owner set to Jon
  • Status changed from new to assigned

Understood but that would mean a change in the program in case that needs changing. I just demonstrated that the manifest needs updating for the dpi awareness.

I leave this ticket open to make the change permanent in the next versions.

Jos

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as assigned The owner will remain Jon.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.