AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DPI-Einstellung abfragen / ändern
Thema durchsuchen
Ansicht
Themen-Optionen

DPI-Einstellung abfragen / ändern

Ein Thema von adeptus · begonnen am 2. Jun 2008 · letzter Beitrag vom 9. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von adeptus
adeptus

Registriert seit: 12. Okt 2005
Ort: Berlin
29 Beiträge
 
Delphi 7 Architect
 
#1

DPI-Einstellung abfragen / ändern

  Alt 2. Jun 2008, 12:44
Hallo,

gibt es einen Weg über Kode die Einstellung der Bildschirm-DPI (meistens 96 oder 120) einzustellen und/oder zu ermitteln? Sei es nun über API oder Registry -Einstellung?

Vielen Dank für jeden Hinweis!
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DPI-Einstellung abfragen / ändern

  Alt 2. Jun 2008, 12:48
Spontan fällt mir da GetDeviceCaps ein (mit den beiden LogPixels-Konstanten).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von adeptus
adeptus

Registriert seit: 12. Okt 2005
Ort: Berlin
29 Beiträge
 
Delphi 7 Architect
 
#3

Re: DPI-Einstellung abfragen / ändern

  Alt 2. Jun 2008, 13:04
Zitat von DeddyH:
Spontan fällt mir da GetDeviceCaps ein (mit den beiden LogPixels-Konstanten).
Hmmm.. Hab mir das mal angeschaut:


LOGPIXELSX Number of pixels per logical inch along the screen width. In a system with multiple display monitors, this value is the same for all monitors.
LOGPIXELSY Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors.

Das fühlt sich ja so an, als ob es unteschiedliche Einstellungen für width und Height gäbe. Und wie schliesse ich von diesen Werten dann auf die DPI?
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von adeptus
adeptus

Registriert seit: 12. Okt 2005
Ort: Berlin
29 Beiträge
 
Delphi 7 Architect
 
#4

Re: DPI-Einstellung abfragen / ändern

  Alt 4. Jun 2008, 13:08
Keiner 'ne weitere Meinung? 'nen Hinweis?
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: DPI-Einstellung abfragen / ändern

  Alt 4. Jun 2008, 13:25
Wie, auf die DPI schließen? Bei mir kommt 96 heraus (stimmt ja auch).
Delphi-Quellcode:
procedure ShowDPI;
var DC: hDC;
begin
  DC := GetDC(HWND_DESKTOP);
  try
    ShowMessage(inttostr(GetDeviceCaps(DC,LOGPIXELSY)));
  finally
    ReleaseDC(DC,HWND_DESKTOP);
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DPI-Einstellung abfragen / ändern

  Alt 4. Jun 2008, 14:14
Zitat von adeptus:
Das fühlt sich ja so an, als ob es unteschiedliche Einstellungen für width und Height gäbe. Und wie schliesse ich von diesen Werten dann auf die DPI?
GetDeviceCaps wird auch für Drucker verwendet. Einige Drucker haben vertical eine andere Auflösung als horizontal. Deshalb ist es auch gut, daß man die Werte getrennt abfragen kann.
Sie sind aber bei den meisten Druckern und Bildschirmen gleich.

Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von adeptus
adeptus

Registriert seit: 12. Okt 2005
Ort: Berlin
29 Beiträge
 
Delphi 7 Architect
 
#7

Re: DPI-Einstellung abfragen / ändern

  Alt 9. Jun 2008, 11:01
Zitat von DeddyH:
Wie, auf die DPI schließen? Bei mir kommt 96 heraus (stimmt ja auch).
Delphi-Quellcode:
procedure ShowDPI;
var DC: hDC;
begin
  DC := GetDC(HWND_DESKTOP);
  try
    ShowMessage(inttostr(GetDeviceCaps(DC,LOGPIXELSY)));
  finally
    ReleaseDC(DC,HWND_DESKTOP);
  end;
end;
Ok, das funktioniert so weit, danke! Ich habe aber keine "SetDeviceCaps" Funktion gefunden... Darum ging's mir eigentlich vorrangig. Ich würde gerne die DPI-Einstellung in einer Batch-Datei ändern kurz bevor ein entsprechendes Programm welches 120dpi braucht aufgerufen wird und nach Beendigung des Selben wieder 96 einstellen...
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: DPI-Einstellung abfragen / ändern

  Alt 9. Jun 2008, 11:09
doch, SetDeviceCaps gibts. Sollte dir auch die Windows-API-Doku deiner Wahl sagen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: DPI-Einstellung abfragen / ändern

  Alt 9. Jun 2008, 12:14
SetDeviceCaps habe ich auch nicht gefunden. Aber dieser Artikel könnte Dir evtl. weiterhelfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von adeptus
adeptus

Registriert seit: 12. Okt 2005
Ort: Berlin
29 Beiträge
 
Delphi 7 Architect
 
#10

Re: DPI-Einstellung abfragen / ändern

  Alt 9. Jun 2008, 15:04
Zitat von DGL-luke:
doch, SetDeviceCaps gibts. Sollte dir auch die Windows-API-Doku deiner Wahl sagen.
Original Zitat aus der MSDN-Website:

Zitat:
Was aber, wenn wir die Bildschirmeinstellungen verändern möchten? Die Suche nach einem GetDeviceCaps-Äquivalent "SetDeviceCaps" bleibt erfolglos, einen direkten Rückwärtsgang zum obigen Vorgehen gibt es also nicht.
Pascal
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz