get_metric_factors

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

get_metric_factors

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Mein Problem ist, dass die Methode get_metric_factors der Klasse cl_gui_props_consumer die Bildschirmauflösung des Standardbildschirms liefert. Ich benötige aber die Bildschirmauflösung des Monitors auf dem das SAPGUI gerade ausgeführt wird.

p.s.
Wie heißt es eigentlich richtig: der, die oder das SAPGUI?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: get_metric_factors

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Dele hat geschrieben:Mein Problem ist, dass die Methode get_metric_factors der Klasse cl_gui_props_consumer die Bildschirmauflösung des Standardbildschirms liefert. Ich benötige aber die Bildschirmauflösung des Monitors auf dem das SAPGUI gerade ausgeführt wird.
Das hier liefert also nicht die aktuelle Auflösung?

Dele hat geschrieben:p.s.
Wie heißt es eigentlich richtig: der, die oder das SAPGUI?
Gefühlt nur DER oder DIE. Nachgedacht müsste es aber DAS heißen wegen "Interface". Wobei es bei englischen Begriffen theoretisch eh komplett egal ist... :D

Re: get_metric_factors

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Falls du daraus die Größe von Docking-Container oder ähnliches ermitteln möchtest: Darauf kannst du dich eh nicht verlassen, weil du ja auch die Größe der SAPGUI-Schriftart und den Windows-Zoom-Faktor berücksichtigen müsstest.

Re: get_metric_factors

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Das hier liefert also nicht die aktuelle Auflösung?
Genau das ist mein Problem. Es wird immer nur die Auflösung des in Windows definierten Standardmonitors zurück geliefert. Kann man sofort testen, wenn man mehrere Monitore mit unterschiedlichen Auflösungen im Einsatz hat.
Ich habe eine Anwendung, die dem Anwender eine amodale Dialogbox anzeigt. Zuvor wird die Bildschirmauflösung ermittelt und die Dialogbox ganz rechts positioniert (und das funktioniert eigentlich ganz gut - nicht perfekt, aber es passt schon). Nun hat ein Anwender einen Monitor mit einer extrem hohen Auflösung als Standardmonitor. SAP führt er aber auf einem Monitor mit deutlich niedrigerer Auflösung aus.
Da get_metric_factors die Auflösung des Standardmonitors liefert, ermittelt meine Anwendung in diesem Fall eine Position, die viel weiter rechts liegt, als dass sie auf dem SAPGUI-Monitor angezeigt werden kann. Effekt: der Anwender sieht die Dialogbox nicht.

Re: get_metric_factors

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Dann würde ich den Anwender das manuell einstellen lassen und die letzte Position und Größe speichern und beim nächsten Mal wieder laden.
Sehr schön hierfür die Personalisierung:
http://www.tricktresor.de/blog/personalisierung/
Plus Button für "Standardwerte wiederherstellen"... ;)

Re: get_metric_factors

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Erst mal Danke für den Tipp zur Personalisierung.
Aber ich suche dennoch nach einer Möglichkeit die Auflösung herauszufinden.
Vielleicht könnte man da etwas mit OLE erreichen.
Vielleicht gibt es auch Windowstool mit dem man so etwas machen kann.
Oder es steht irgendwo in der Registry.

Re: get_metric_factors

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Auch nur unzureichend (bisher), aber wahrscheinlich der bester Ansatz:
http://www.tricktresor.de/blog/bildschi ... -vbscript/

Re: get_metric_factors

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Das Thema hat mich nicht in Ruhe gelassen... Ich bin zwar schlauer geworden, aber in der Sache leider nicht weiter gekommen.

Ich habe diese Seite gefunden, die eigentlich alles an Informationen liefert, was ich brauche:
https://blogs.technet.microsoft.com/hey ... formation/

Nur leider leider funktioniert genau der Select auf dieses Objekt hier nicht:
WmiMonitorBasicDisplayParams

Ich habe also weiterhin keine Möglichkeit gefunden, um die Anzahl der Monitore und deren Auflösung zu ermitteln.

Current_...Resolution vom Win32_Videocontroller liefert nur die Einstellung für EINEN Videocontroller. Ich habe ZWEI Monitore, die beide mit der gleichen Auflösung laufen.

Und ich habe zwei Videocontroller (Notebook: Wahrscheinlich einer Extern und einer Intern oder einer Standard und einer mit Hardwarebeschleunigung oder so).

Win32_Desktopmonitor liefert immerhin die angeschlossenen Monitore (Name / DeviceID):
Standardmonitor / DesktopMonitor1 | BenQ GL2450H / DesktopMonitor2

Aber eben leider nicht die Auflösung (ScreenHight und ScreenWidth sind leer)…

Eben habe ich noch mal das Notebook hochgeklappt und hätte nun DREI Monitore erwartet, aber: leider nein, leider gar nicht... :/

Immerhin ist es interessant, was man dem System auf diese Art und Weise alles an Informationen entlocken kann...

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.