Seite 1 von 1

Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 14:30
von Josh
In den Systemeinstellungen kann ich ja festlegen, ob die Schrift in Windows vergrößert dargestellt werden soll (125%, 150%).

Weiß jemand, ob und wie ich diese Einstellung per API abfragen kann?

Danke
Josh

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 14:35
von RSBasic
Meinst du die DPI-Einstellung (96dpi = 100 %)?
Abfragen kannst du damit: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 15:07
von Josh
Ich meine folgende Einstellungen:

XP
- Systemsteuerung
- Anzeige
- Darstellung
- Schriftgrad

und dann auswählen zwischen:

- Normal
- Große Schriftarten
- Sehr große Schriftarten

Win7
- Systemsteuerung
- Anzeige

und dann auswählen zwischen:

- Kleiner
- Mittel 125%
- Größer 150%

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 15:19
von ts-soft
Genau das wird mit dem Code von RSBasic ermittelt. Musst nur noch die DPI in % ändern, falls erforderlich :)

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 15:44
von Helle
Es ist vielleicht besser mit #LOGPIXELSY zu arbeiten:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 0, 0, "", #PB_Window_Invisible)
  MessageRequester("Desktop-Schriftgröße Windows", StrF((100 / 96) * GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY), 0) + "%")
EndIf
Gruß
Helle

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 18:04
von Josh
Danke erst mal für eure Antworten, leider funktioniert beides nicht. Was ich auch erst jetzt gecheckt habe, dass die beiden Funktionen in XP und in WIN7 nicht das gleiche machen.

XP
Hier werden nur die Schriftarten vergrößert.

Bei RsBasic seiner Version wird hier bei allen drei Modi 96 DPI ausgegeben.
Bei Helles Version wird für alle drei Modi 100% ausgegeben.

WIN7
Hier wird zum Teil auch die Grafik vergrößert

Bei RsBasics Version werden bei den drei Modi folgende Werte ausgegeben: 96/120/96
Bei Helles Version werden bei den drei Modi folgende Werte ausgegeben: 100/125/100

Beim letzten Modi dürfte Win7 intern Pixel einfügen, sodass die Angaben wieder ok sind.

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 18:11
von RSBasic
@Josh
Du musst deinen PC neu starten, damit die Änderungen global wirksam werden. Nach dem Neustart wird bei der WinAPI-Abfrage auch den richtigen DPI-Wert zurückgegeben.

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 18:22
von Josh
Wiso global? Das sind Einstellungen vom Benutzer.

In XP ändere ich ja auch keinen DIP Wert. Es werden NUR die Schriftgröße verändert.

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 18:25
von RSBasic
Mit "global" meine ich nicht benutzerübergreifend, sondern, dass diese Änderung überall wirksam wird wie z.B. bei der WinAPI-Abfrage.

Wenn du direkt ermitteln möchtest, welcher DPI-Wert aktuell eingestellt wurde, dann musst du es über Registry machen. Beispielcodes über das Auslesen von Einträgen aus der Registry findest du in diesem Forum reichlich.
Wo diese Einstellung gespeichert ist: HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\
DWORD (32-bit): AppliedDPI
Dieser Wert wird immer angepasst, wenn du die DPI-Einstellung von Windows änderst.

\\Edit:
Die andere Einstellung, die du meinst, "Schriftgröße", muss ich erst schauen, wie man das auslesen kann.

Re: Systemeinstellungen Schriftgröße

Verfasst: 19.07.2012 18:51
von RSBasic
Du willst ja die Schriftgröße ermitteln: http://purebasic.fr/english/viewtopic.p ... 92#p339292