Laden...

Wie die Skalierung von Bilderschirmen unter Windows auslesen

Erstellt von *neo* vor einem Jahr Letzter Beitrag vor einem Jahr 668 Views
*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor einem Jahr
Wie die Skalierung von Bilderschirmen unter Windows auslesen

Hallo zusammen,

ich benötige die Skalierung des Bildschirms in Windows.
Dazu lese ich den Wert LogPixels unter HKEY_CURRENT_USER\Control Panel\Desktop aus.
Wenn ich den Wert in den Bildschirmeinstellungen ändere dann ändert sich aber der Wert nicht.
Ist das die falsche Stelle?
Ich weiß es gibt noch andere Methoden um die Skalierung zu erhalten. Die Anwendung ist jedoch alt und basiert auf einer 2er Dot net Version.

Danke und Grüße

16.835 Beiträge seit 2008
vor einem Jahr

Grundregel der Windows Registry: die Windows Registry stellt keinen Live-Zustand dar, weder vom System selbst noch von Applikationen.
Willst Du Live-Werte musst Du immer über die Windows API gehen.

In diesem Fall vielleicht GetScaleFactorForMonitor function (shellscalingapi.h) - Win32 apps

*
*neo* Themenstarter:in
299 Beiträge seit 2006
vor einem Jahr

Hallo,

danke für die Antwort.
Ok.
Gibt es denn eine Möglichkeit auf einer Gui Form zu prüfen, ob das Element noch im sichtbaren Bereiches des Users ist, oder ob das Element samt Form über z.B. den rechten Rand des Bildschirms hinausgeht.

Weist du was ich meine?

Grüße

4.939 Beiträge seit 2008
vor einem Jahr

Das kannst du mit Rectangle.Contains(Rectangle) überprüfen (s.a. das Beispiel dort, nur statt rectangle1 dann DesktopBounds der Form benutzen).

Evtl. mußt du noch die Client-Koordinaten in Screen-Koordinaten umrechnen, falls du explizit ein Unterelement der Form überprüfen willst: PointToScreen.