我的应用程序具有使用双显示器配置的能力。在应用程序的设置中,我列出了可用的显示器,用户将选择他的第二个屏幕。
我正在使用以下方式获取(真实)监视器设备名称:
但我还需要显示边界(顶部、左侧等),而这个方法并没有给我。但是
[编辑] Win32_DesktopMonitor 没有给我我的第二个监视器的名称。它只是称它为默认监视器。而且它把它列在我的主监视器之前。
[编辑2] 好吧,它把名称和分辨率搞混了...... 有人知道这里出了什么问题吗?
我正在使用以下方式获取(真实)监视器设备名称:
http://msdn.microsoft.com/en-us/library/aa394122%28VS.85%29.aspx
SelectQuery q = new SelectQuery("SELECT Name, DeviceID, ScreenHeight, ScreenWidth FROM Win32_DesktopMonitor");
using (ManagementObjectSearcher mos = new ManagementObjectSearcher(q))
{
foreach (ManagementObject mo in mos.Get())
{
...
}
}
但我还需要显示边界(顶部、左侧等),而这个方法并没有给我。但是
System.Windows.Forms.Screen
可以给我边界,但不能给出真实的设备名称。如果我确信它们每次都能按照相同的顺序返回设备,我可以将它们结合使用。这两个方法每次都会按照时间顺序返回“Device 1”、“Device 2”等吗?还是有一种包含我所需所有信息的方法?[编辑] Win32_DesktopMonitor 没有给我我的第二个监视器的名称。它只是称它为默认监视器。而且它把它列在我的主监视器之前。
[编辑2] 好吧,它把名称和分辨率搞混了...... 有人知道这里出了什么问题吗?