In Windows 10-Schriftgröße herausfinden

    In Windows 10-Schriftgröße herausfinden

    Hallo,

    wie kann man in Delphi ermitteln ob der Anwender, z. B. in Windows 10, seine Schrift mit 100% oder größer eingestellt hat.
    In Windows 7 konnte man noch die PixelperInch abfragen. In Windows 10 ist PixelperInch aber immer 96.
    Vielleicht hat jemand da eine Lösung.
    Ich benutze Delphi Berlin 10.1 Prof.

    Gringo
    Hallo DedddyH,
    Leider kann ich mich erst heute melden.
    Ich habe mir Deinen Link angeschaut, kann aber leider nichts damit anfangen.
    Ich habe keine Ahnung, wie ich das im Programm abfragen soll.
    Wie muss ich das in einer Procedure verwenden?

    Gruß Gringo
    Was meinst du mit "das"? Willst du die Manifest probieren? Dann speichere das Manifest wie es im Stackoverflow-Thread angegeben ist z.B. in deinem Projektverzeichnis unter "highDPI.xml". Erstelle eine Datei "highDPI.rc" und schreibe rein

    Quellcode

    1. 1 24 "highDPI.xml"

    Compiliere diese Ressourcendatei mit brcc32. Binde sie ein, indem du

    Delphi-Code

    1. {$R highDPI.res}

    in deine Projektdatei einfügst.
    Jetzt ist deine Anwendung High-DPI-Aware. Das bedeutet, dass du die korrekten Werte in PixelsPerInch erhalten solltest. Das bedeutet aber auch, dass du nun unter Umständen eine Menge Arbeit damit hast, dafür zu sorgen, dass tatsächlich alles ordentlich aussieht. Die ganzen Probleme sind im SO-Thread und auch in diesem hier lang und breit erörtert. Einen Königsweg gibt es wohl nicht. Und du solltest deine Anwendung mit verschiedenen Skalierungsfaktoren und Systemschriften testen, um sicherzugehen, dass du nicht nur behauptest, High-DPI-Aware zu sein.
    Master of the EDH ;)
    Hallo projekter,
    ich habe keine Ahnung was das Manifest ist.
    Ein so großes Fass wollte ich auch nicht aufmachen.
    Mir ging es nur darum, ob und wie man im Programm abfragen kann wieviel % Schriftgrösse der Anwender in Windows 10 eingestellt hat.
    Man könnte dann im Programm eventuell darauf reagieren.
    Wie weiss ich noch nicht.
    Man kann ja alles mögliche über das Betriebssystem abfragen, warum nicht auch wieviel % Schriftgrösse hat der Anwender eingestellt hat.
    Gruß gringo
    Hallöle... 8o

    You could have a look at the Registry value AppliedDPI at
    HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
    Thanks to Andreas Rejbrand.

    warum nicht auch wieviel % Schriftgrösse hat der Anwender eingestellt

    ...100% = 96DPI

    Wie schon DeddyH gesagt hat...über die Registry kommst du an den Wert.


    Ich mußte erst die VM(W10) herunterfahren um die Änderungen in der Registry zu sehen. 8o

    PS: Im DT gibt es ein Beispiel: delphi-treff.de/tipps-tricks/k…herausfinden-large-small/

    ...der Rest ist Mathematik. 8)

    Dateien
    • 125.png

      (10,02 kB, 65 mal heruntergeladen, zuletzt: )
    • 100.png

      (8,07 kB, 57 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „haentschman“ ()

    Hallo Haentschman,

    über diesen Link klappt es mit dem auslesen der % Schriftgrösse.
    HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
    Was ich nicht gemacht hatte ist, den PC nach der Umstellung neu zu starten.
    Erst danach ist die Anzeige in der Registrie aktualisiert.
    Folgende Werte konnte ich ermitteln:
    100 % = 96,
    125% = 120,
    150% = 144,
    175% = 168,
    200% = 192.
    Jetzt muss ich mir nur noch anschauen wie man die Registrie aus dem Programm ausliest.
    Damit kann man das Thema als erledigt betrachten.
    Danke an alle Beteiligten.

    gruß gringo