get(0,'Mon​itorPositi​ons') outputs wrong values

15 visualizaciones (últimos 30 días)
Z.P.
Z.P. el 26 de Oct. de 2018
Editada: adams13 el 30 de Sept. de 2025 a las 13:03
Hello,
I have a big issue with the outputs from
get(0,'MonitorPositions')
when the screen is changed within one MATLAB session!
For example:
I start my PC and run my Monitors at my standard resolution. Then I type
get(0,'MonitorPositions')
and it is just fine.
But when i plug in a projector for example or change the resolution of my screen and just run the same code
get(0,'MonitorPositions')
then it outputs the same values like before even though the resolution obviously changed!
I have written a function that needs the correct resolution of the attached displays, but now it is just a desaster.
Hope someone can help me.

Respuestas (1)

Adam Danz
Adam Danz el 26 de Oct. de 2018
Editada: Adam Danz el 26 de Oct. de 2018
As stated in the documentation (<- link),
MATLAB® sets the display information values for this property at startup. The values are static. If your system display settings change, the values do not update. To refresh the values, restart MATLAB.
  4 comentarios
Stephen23
Stephen23 el 26 de Oct. de 2018
"...also don't set it up to automatically receive a message that the screen configuration has changed."
I very doubt that this is trivial to achieve on a multi-OS application.
adams13
adams13 el 30 de Sept. de 2025 a las 13:02
Editada: adams13 el 30 de Sept. de 2025 a las 13:03
In R2024b under Windows 11, get(0, 'MonitorPositions') looks to dynamically reflect the change, even without restarting MATLAB. After I connect or disconnect an additional monitor, the next call shows correct number of monitors.

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by