gpt4 book ai didi

matlab - 断开显示器连接时(重新)检测连接的显示器数量

转载 作者:行者123 更新时间:2023-12-03 03:45:31 27 4
gpt4 key购买 nike

当我的计算机连接多个显示器时,我可以检测它们,并根据从获取的值设置位置来向它们绘制图形

get(0, 'MonitorPositions')

但是,当我在 MATLAB 运行时断开监视器时,此属性不会更新。我用distFig处理图形的定位,但由于此属性未更新,有时图形会绘制在屏幕外部的像素位置(即在断开连接的监视器上绘制)。

重新启动 MATLAB 可以解决问题,但有没有办法重新检测连接的显示器数量?

最佳答案

我想我找到了使用JAVA的解决方案:

我从这里得到了JAVA代码:How do I get number of available screens?

获取数量

get(0, 'MonitorPositions') 一直显示相同的值,并且 JAVA 结果发生变化:

%// Get local graphics environment
%GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
env = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();

%// Returns an array of all of the screen GraphicsDevice objects.
%GraphicsDevice[] devices = env.getScreenDevices();
devices = env.getScreenDevices();

%numberOfScreens = devices.length;
numberOfScreens = length(devices)
<小时/>

我在 Windows 10 操作系统中测试了代码。
在监视器复制模式下,结果为 1 个监视器,在扩展模式下为 2。
当我拔掉显示器时,结果是 1。
当拔掉所有显示器时,结果也是 1(这不是一个完美的解决方案)。

关于matlab - 断开显示器连接时(重新)检测连接的显示器数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com