我想编写一个wmi和Java,或者同时编写这两个程序,以自动查找并识别连接到我的计算机(Windows)的显示设备是显示器还是投影仪。
任何想法如何做到这一点?
最佳答案
我不太确定您要说什么,但希望对您有帮助
java.awt.Window是所有顶级窗口(Frame,JFrame,Dialog等)的基类,并且包含getGraphicsConfiguration()
方法,该方法返回该窗口正在使用的GraphicsConfiguration。 GraphicsConfiguration具有getGraphicsDevice()
方法,该方法返回GraphicsConfiguration所属的GraphicsDevice。然后,您可以使用GraphicsEnvironment类针对系统中的所有GraphicsDevices进行测试,并查看Window属于哪个窗口。
Window myWindow = ....
// ...
GraphicsConfiguration config = myWindow.getGraphicsConfiguration();
GraphicsDevice myScreen = config.getDevice();
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
// AFAIK - there are no guarantees that screen devices are in order...
// but they have been on every system I've used.
GraphicsDevice[] allScreens = env.getScreenDevices();
int myScreenIndex = -1;
for (int i = 0; i < allScreens.length; i++) {
if (allScreens[i].equals(myScreen))
{
myScreenIndex = i;
break;
}
}
System.out.println("window is on screen" + myScreenIndex);
请参阅以下内容:
Link One
Link Two
Link Three
Link Four