Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#1

Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 14:33
Hallo Experten,

ich suche schon eine Weile eine Möglichkeit, den vertikalen Versatz eines angeschlossenenen Monitors per Code zu ermitteln.

Grund:
Ich habe zwei Monitore an meinem PC, einen Hauptmonitor mit der Auflösung 1680x1050 und einen zweiten Touchscreen links daneben mit 1920x1080.
(links deswegen, weil ich Linkshänder bin und so besser mit dem Ding umgehen kann ).
Der zweite, grössere ist aber über die Bildschirm-Einstellungen (absichtlich) vertikal nach unten verschoben, um beim Fenster-Verschieben zwischen
den beiden Monitoren einen nicht so grossen Versatz zu erhalten (aufgrund der Auflösungs-Differenz und der unterschiedlichen Stellhöhe der Monitore).

Nun habe ich damit aber ein Problem: Die Position 0 auf dem Desktop bezieht sich auf den Hauptmonitor und ist beim zweiten Monitor im negativen Bereich.
Wenn ich nun ein Fenster der Breite 800 auf den zweiten Monitor mit MoveWindow auf X,Y (-800,0) positioniere, ist das Fenster in der Höhe nicht ganz sichtbar, da die kleinste Y-Koordinate des zweiten Monitors nicht 0 ist, sondern negativ dem Versatz entspricht, den man in den Bildschirm-Auflösungen eingestellt hat.
Der X-Wert stimmt. (Die X-Koorinaten liegen beim linken Monitor ja auch im negativen Bereich, aber da gibt es keinen Versatz und es ist leicht zu ermitteln)

Gibt es eine Möglichkeit in Delphi, den vertikalen Versatz des Monitors zu ermitteln, um die Fensterpositionen korrekt anzupassen?
Ich habe das richtige wohl noch nicht ergooglen können


P.S.:
Ich habe meine Monitor-Einstellungen mal als Screenshot zur Verdeutlichung angehängt.

Edit: Logik-Fehler in der Beschreibung korrigiert

grüssle,

Fin
Miniaturansicht angehängter Grafiken
monitor_res_win7_395.jpg  
  Mit Zitat antworten Zitat