2012-05-19 44 views
5

Tôi đang cố gắng xác định màn hình trong cài đặt đa màn hình để lưu một số dữ liệu được liên kết với màn hình đó. Làm thế nào tôi có thể xác định một màn hình đáng tin cậy, sau khi khởi động lại?Nhận dạng màn hình

Tôi biết về lớp Screen trong. Net nhưng Screen.DeviceName dường như không liên tục trỏ đến một màn hình (ví dụ sau khi cài đặt trình điều khiển đồ họa mới).

+0

Bạn có thực sự mong muốn có thể thay đổi trình điều khiển thiết bị của mình và vẫn theo dõi một màn hình nhất định không? Câu hỏi thực sự là, tại sao bạn muốn làm điều đó? –

+0

Vâng, bởi vì tôi đang viết một công cụ nhiều màn hình nhỏ và cần phải lưu cài đặt cho mỗi màn hình. –

Trả lời

0

tôi giải quyết điều này bằng cách nhận được DeviceID với API EnumDisplayDevices. Dường như là duy nhất cho mỗi màn hình và không thay đổi sau khi cập nhật trình điều khiển chẳng hạn.

WMI là câu hỏi dành cho tôi như tôi đã thử trước đó và nó chỉ trả về một màn hình với thiết lập đa màn hình của tôi.

0

Hãy thử WMI thay vì WinForms.

Các bài sau đây cho thấy làm thế nào để có được màn hình và chi tiết của họ (s DisplayDetails lớp ví dụ.): Monitor ID and Serial Number

Edit:

Đề nghị của tôi:

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"]); 
+0

Tôi có hai màn hình và truy vấn đó chỉ trả lại một màn hình –

Các vấn đề liên quan