![]() |
Die größe eines Monitors ermitteln (nicht Pixel)
Bevor ich mich auf die Suche mache, denn auf die Schnelle habe ich nichts gefunden, wollte ich mal fragen ob einer weiß ob man die Größe eines Monitors irgendwo im System auslesen kann, vorausgesetzt das System weiß sowas. Da heute dank P&P vieles ausgelesen werden kann, frage ich mich ob auch die Größe irgendwo angegeben ist, also z. B. 24" bzw. im Cm.
Ich meine damit nicht die Pixel Breite und Höhe. Ich brauche die Breite und Höhe in Zentimeter. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Delphi-Quellcode:
ControlSet002, ControlSet003 usw.
HKEY_LOCAL_MACHINE/System/ControlSet001/Enum/DISPLAY/
Das bildet den Einstieg in die Systemregistrierung. Die Windows-Api hat auch ein paar nützliche Befehle: EnumDisplayMonitors(), GetMonitorInfo(), MonitorFromWindow(), EnumDisplayDevices(), DeviceCapabilities(), GetDeviceCaps() usw. ABER die tatsächliche Dimension des verbauten Panels bekommst Du glaube ich nur über den Treiber heraus. Mir ist keine Methode/Funktion bekannt die das auswertet. Es gibt ja auch keinen Befehl mir die Dimension meines PC-Gehäuse auszuwerten oder wie groß der Raum ist in dem der PC steht. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Auflösungen / DPI = Abmessungen
|
AW: Die größe eines Monitors ermitteln (nicht Pixel)
34" @ 21:9 @ 3440x1440 @ 96dpi
Es ist wahrscheinlich noch etwas früh aber wie wende ich jetzt genau Deine Formel an um als Ergebnis = 34 zu erhalten? |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Moin...:P
Zitat:
|
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
Ich geh mal von 1980x1080 aus hehe |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
|
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Ich habe mal etwas rumexperimentiert aber komme auf keinen grünen Zweig
Bei mir lt. Panel-Beschreibung: 34" = 86.36 cm, so aufgeteilt 796.63 mm x 333.46 mm ![]() 3440 px ergibt 91.02 cm 1440 px ergibt 38.10 cm Ich komme hier auf keinen Nenner. Ich vermute die Lochmaske/Pixel-Pitch bestimmt die tatsächliche Dimension des Panels wobei man dann noch das Gehäuse mitrechnen muss. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
|
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Die Berechnung bezieht sich auf eine feste Pixeldichte. Diese unterscheidet sich aber von Bildschrm zu Bildschirm. Ein 24 Zoll Bildschirm in FullHD ist nunmal größer als eine 4 Zoll FullHD-Handy.
|
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
Zitat:
Ich glaube nicht das ich jemals irgendwo (abseits von Treiber intern selbst) etwas gelesen habe das mir diesen Wert ermittelt, wozu auch, Display-Dimensionen sind für uns wichtig. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
Gruß K-H |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
DPI-Angaben bei Röhrenmonitoren oder Beamern sind eh nie genau.
HDMI zu TV-Geräten wird manchmal nochmal bissl verzehrt (Rahmen). Und sonst sagt wohl der Treiber (INF) dem Windows was der Monitor hat und das kann man bei Windows abfragen. Ja, das kann verändert werden und auch am Monitor kann man da oft nochmal was verstellen, was Windows dann nicht mitbekommt, aber erstmal ist das die einzige praktikable Stelle um das zu erfahren. Du kannst natürlich über spezielle Schnittstellen direkt mit dem einigen Monitoren reden, aber wer will sowas für "alle" Monitore/Hersteller der Welt seiber bei sich einbauen? Windows fragen und im Programm das vom User nochmals anpassen lassen können, wenn er der Meinung ist genauer einstellen zu wollen. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
also Wurzel aus (Hoehe^2 + breite^2) Abmessungen = Sqrt( (Pixelx/Dpi)^2+(pixely/dpi)^2) // ggf mal 2.54 wenns CM sein sollen wie genau die Angaben sind die das Betriebssytem zurückliefert kann ich nicht beurteilen |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Also ich ging nicht davon aus, dass Windows es weiß, aber in den letzten Jahren hat sich viel an der Technik getan. Es gab mal eine Zeit, da waren die Monitore monodirektional, dann wurden sie bidirektional. Ich habe mich gefragt ob die inzwischen evtl. ihre Größe Windows mitteilen.
Wie mache ich es in meinem Programm aktuell? Von Hand. Da habe ich zwei Möglichkeiten, eine einfache und eine weniger einfache. Die Einfache geht über die Eingabe der Bildschirmdiagonalen. Weiß ich, dass der Monitor 24" ist und 16:9, ist die erste Formel: f = QWurzel(16² + 9²) >> f = 18,36. Damit berechne ich dann Breite = 24 / f * 16. Oder Höhe = 24 / f * 9. Ergebnisse sind in Zoll, mit 2,54 multipliziert in Zentimeter. Bei der anderen Methode wird die Bildschirmbreite und -höhe von Hand gemessen, die Rechnung bleibt aber ähnlich. Wenn wir schon dabei sind, und weil es mich selbst interessiert, bei einem 24" Monitor ist DPI: DPI = 1920 / Breite in Zoll = 91,8. Bei 21 ist sie 104,9. Bei 27 ist sie 81,3. Also immer anders. Zurück zur Frage. Ganz kompliziert ist es also nicht, nur die Leute, für die ich das Programm schreibe, haben keine Ahnung was eine Bildschirmdiagonale ist, oder 16:9. Ich dachte ich bekomme es einfacher raus. |
AW: Die größe eines Monitors ermitteln (nicht Pixel)
Zitat:
sqrt(sqr(3440 / 96) + sqr(1440 / 96)) * 2.54 = 98.67 cm Die Formel funktioniert so nicht. Tatsächliche Dimension: 34" = 86.36 cm, so aufgeteilt 796.63 mm x 333.46 mm edit Andersrum funktioniert es die Diagonale zu berechnen: sqrt(sqr(796.63) + sqr(333.46)) / 10 = 86.36 cm |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz