T O P I C R E V I E W |
papa.john |
Posted - Sep 20 2023 : 03:26:39 Hello. I came across this problem. If the system's screen scaling is set to more than 100% and Unaware is selected in "DPI Awareness" (Project -> Options -> Application -> Manifest), then screenshots created by the ImageEnIO.CaptureFromScreen(iecsScreen) function are truncated.
The problem can be solved by changing the DPI Awareness settings from Unaware to any other (for example PerMonitor2), but it will lead to remaking my application GUI for supporting different screen DPI. Is it possible somehow to make full-sized screenshots without changing DPI Awareness and system's screen scaling?
Cropped screenshot: https://ibb.co/9qGgWkb System's screen scaling: https://ibb.co/pzPTPJx DPI Awarness section: https://ibb.co/kcsfYVy
I use Windows 10 22H2 and Delphi 10.4 |
1 L A T E S T R E P L I E S (Newest First) |
xequte |
Posted - Sep 21 2023 : 01:02:54 Hi
Unfortunately, by nature, if you specify that the application is unaware of scaling then the values returned by internal calls such as GetSystemMetrics() and Screen.Monitors are already scaled without there being a reasonable method to know that they're scaled.
I will add a warning to the documentation.
Nigel Xequte Software www.imageen.com
|
|
|