Screen width(*) auf HD-Laptop

Die Bildschirmauflösung auf einem Laptop-Tablet-Dingens ist 2560 x 1440.
4D v15 liefert mit Screen width() und Screen height() aber 1280 x 720.
Also genau die Hälfte.

Gibt es da irgendeinen Trick, um die echte Auflösung zu bekommen?

Vermutlich hat der Anwender unter Skalierung und Anordnung auf 200% gestellt.

Sie müssen dann mit 1280 Pixel rechnen bzw Fenster positionieren.
Auch Screen Coordinates oder Get WINDOW RECT wird entsprechend umgerechnet.

Auf einem Bildschirm mit 3840 bei 125% kommt entsprechend 3072 Pixel.

auf macOS im Terminal
Code :
system_profiler SPDisplaysDataType |grep Resolution
liefert
Code :
Resolution: 1680 x 1050
Resolution: 4096 x 2304 Retina
das sind Zweit-Screen und Erst-Screen. Einen vergleichbaren Befehl auf Windows kenne ich nicht.

4D liefert
<code 4D>
SCREEN COORDINATES($l;$t;$r;$b;1)
</code 4D>
$r = 2048, $b = 1152 ($l + $t = 0)
bzw
<code 4D>
SCREEN COORDINATES($l;$t;$r;$b;2)
</code 4D>
$l = 2048, $r = 3728, $b = 1050 ($t = 0)

ergo, Screen 1 = ±260 dpi, Screen 2 = ±130 dpi

Danke.
Kann man die gewählte Skalierung unter Windows irgendwie abfragen?
Win7 und Win10. Vielleicht irgendwas mit LEP?

falls da noch eine Antwort fehlen sollte, geht sicher mit LEP. Sie brauchen nur ein entsprechendes Batch-File. Laut WWW wird auf .net Skripte verwiesen. Suchen Sie mal nach “windows skalierung anzeige abfragen”. Z.B. gibt es hier mehr Infos: https://www.vb-paradise.de/index.php/Thread/74940-Eingestellten-Skalierungsfaktor-in-dpi-ermitteln/.

Danke für den Googeltipp, habe wahrscheinlich den Registry-Eintrag gefunden.
Der liefert zwar bei 100 % nicht 100 sondern 96, also den dpi-Wert, aber das kann man umrechnen.
Bei 150 % liefert es 144, bei 125 % 120, also vermute ich, dass bei 200 % dann 192 kommt.
Bis jetzt nur auf Win7 getestet, hoffentlich auch auf Win10 möglich.

Hier die Abfrage mit Win32API:
<code 4D>
C_LONGINT($e;$n;$key;$x64)
C_TEXT($sub;$nam)
$key:=GR_HKEY_CURRENT_USER
$sub:=“Control Panel\Desktop”
$nam:=“LogPixels”
$x64:=Num((Version type%2)=1)
$n:=0
$e:=sys_GetRegLongint ($key;$sub;$nam;$n;$x64)
ALERT(String($n))

</code 4D>