5

我正在尝试在多显示器设置中识别一个屏幕,以保存一些链接到该屏幕的数据。重新启动后,如何可靠地识别屏幕?

我知道Screen.Net 中的类,但Screen.DeviceName似乎并没有始终指向一个屏幕(例如在安装新的图形驱动程序之后)。

4

2 回答 2

0

尝试 WMI 而不是 WinForms。

以下帖子显示了如何获取监视器及其详细信息(例如 DisplayDetails 类):监视器 ID 和序列号

编辑:

我的建议:

using System.Management;

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DesktopMonitor");     
foreach (ManagementObject obj in searcher.Get())
    Console.WriteLine("PNP Device ID: {0}", obj ["PNPDeviceID"]);
于 2012-05-20T18:08:27.920 回答
0

我通过使用EnumDisplayDevicesAPI 获取 DeviceID 解决了这个问题。每个屏幕似乎都是唯一的,例如在驱动程序更新后不会改变。

WMI 对我来说是不可能的,因为我之前尝试过它,它只返回一个带有我的多显示器设置的显示器。

于 2012-06-29T12:11:35.960 回答