beim Auslesen meiner Desktopgröße fällt mir auf, dass eine unter Windows-10 festgelegte Skalierung dabei berücksichtigt wird.
Mein Monitor ist auf die vorgeschlagene Auflösung von 1680*1050 eingestellt.
Ich arbeite mit einer Skaliereung von 125%.
Mir wird beim Auslesen der AppDesktopgröße 1344*840 angezeigt.
Ich wollte, um die reale Desktopgröße zu erhalten, das dann mit dem DPI-Wert multiplizieren um die korrekte Desktopgröße zu erhalten.
Leider scheint meine Funktion dafür unter Windows-10 nicht mehr korrekt zu arbeiten, ich erhalte immer den Wert von 100%.
Was kann ich noch tun, um die reale Desktopgröße zuerhalten?
In der angezeigten MsgBox sind bei mir alle 3 Werte falsch.
Code: Alles auswählen
***********************************************************************************************************************************
*** Feststellen, welche Auflösung der Rechner hat
***********************************************************************************************************************************
FUNCTION AppDesktopDPI
//
LOCAL nHWnd := AppDesktop():GetHWnd()
LOCAL nHDC := DllCall("User32.DLL", DLL_STDCALL, "GetDC", nHWnd)
LOCAL nLogPix := 96
LOCAL LOGPIXELSY := 88
//
nLogPix := DllCall("GDI32.DLL", DLL_STDCALL, "GetDeviceCaps", nHDC, LOGPIXELSY)
DllCall("User32.DLL", DLL_STDCALL, "ReleaseDC", nHWnd, nHDC)
//
RETURN nLogPix
msgbox(str(AppDesktop():currentSize()[1],4,0)+" X "+ ;
str(AppDesktop():currentSize()[2],4,0), ;
"Skalierung "+str(AppDesktopDPI()/96*100,3,0)+"%")