Das aktuelle Skript gibts hier im Skripteforum: https://autoit.de/index.php?thread/86505
Die UDF ist allerdings nur die halbe Miete da man, wenn man GETMINMAXINFO verwendet noch einige Sachen beachten muss.
Wer sich eine Implmentation angucken möchte kann sich ja PassIt2 anschauen (Version >= 1.1.0)
Alter Startpost
Da ich grad PassIt2 DPI-skalierbar gestalte (ist schon fertig, werds auch heute/die nächsten Tage hochladen) wollte ich euch mal zeigen wie man GUIs nahezu perfekt DPI-skalierbar bauen kann.
Viele wissen ja nicht wo sie ansetzen sollen oder anti-scalen einfach (also skalieren die von Windows skalierten Elemente wieder runter). Hier mal wie ich das ganze gelöst habe.
Es gibt leider Bugs bei dem Verfahren, hauptsächlich durch UpDowns (, Icons und anderen Controls - dann muss man das Erzeugen einiger Controls direkt mit der Skalierung erstellen), dazu habe ich in den Beispiel/Funktionen aber was dazu geschrieben.
Und bei ungeraden Prozentwerden rundet Windows einfach die Werte komisch, so dass ein Pixel zu viel oder zu wenig auftauchen kann.
Realisiert wird das ganze mit dem Resizing welches von AutoIt angeboten wird.
Hier mal ein paar Einblicke von der Implementation in PassIt2 (links 100% - rechts 150% DPI). Einfach anklicken:
Nur um das ganze klarzustellen, das skalierte Fenster ist im TeamViewer-Fenster enthalten und wurde von meinem Laptop generiert, das normale Fenster ist auf meinem PC erzeugt.
So einfach kanns sein
Wie man das ganze anstellt findet ihr im angehängten Skript heraus.
Man kann das ganze noch weiter verfeiern, indem man Icongrößen wechselt etc. aber das Nötigste ist im Skript enthalten.
Ist sowas als eigenständige UDF gewünscht?
Altes Skript (nur Windows 7): DPI-Skalierung.au3