【发布时间】:2015-12-23 07:52:14
【问题描述】:
我知道可以在 Java 中获取系统信息,并且已经在 SO 中搜索过这个特定问题,但结果为空。
问题:
我可以收集有关所有连接的监视器的完整系统信息吗?特别是我希望获得每台显示器的唯一 ID、型号或制造商。
例如,Wayan Saryada 在此处演示了一个简单示例,该示例获取有关所有已连接监视器的基本信息。以下代码可防止链接失效:
//
// Get local graphics environment
//
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = env.getScreenDevices();
int sequence = 1;
for (GraphicsDevice device : devices) {
System.out.println("Screen Number [" + (sequence++) + "]");
System.out.println("Width : " + device.getDisplayMode().getWidth());
System.out.println("Height : " + device.getDisplayMode().getHeight());
System.out.println("Refresh Rate: " + device.getDisplayMode().getRefreshRate());
System.out.println("Bit Depth : " + device.getDisplayMode().getBitDepth());
System.out.println("");
}
然而,这段代码没有产生任何独特的东西。它只是有用的通用信息,但不符合我的最终目标。
用例/最终目标:
我的目的是制作一个可跟踪(检测)您正在使用的计算机/计算机设置并显示适当桌面的便携式应用程序。一个例子是在我的带有大显示器的工作计算机上,它以一种方式布置我的桌面,然后在我的笔记本电脑上它隐藏了一些东西;长话短说,它将显示一个备用桌面显示(更少的图标,只有我需要的工作/家庭)。
我已经解决了所有额外的问题,但我需要一种方法来跟踪我使用的计算机以及当时连接的显示器。本质上是附加监视器的“MAC地址”;我知道那不是一回事。例如,在三重监视器设置上,这种方式我的应用程序知道什么在哪里。然后,如果我移除一台显示器,它就会知道要更改什么。
【问题讨论】:
标签: java