2012-05-19 14 views
5

मैं उस स्क्रीन से जुड़े कुछ डेटा को सहेजने के लिए एक बहु-मॉनीटर सेटअप में एक स्क्रीन की पहचान करने की कोशिश कर रहा हूं। रिबूट के बाद भी मैं एक स्क्रीन की पहचान कैसे कर सकता हूं?प्रदर्शित करने की पहचान

मुझे Screen कक्षा में .NET में पता है लेकिन Screen.DeviceName लगातार एक स्क्रीन पर इंगित नहीं होता है (उदाहरण के लिए एक नया ग्राफिक्स ड्राइवर स्थापित करने के बाद)।

+0

क्या आप वास्तव में अपने डिवाइस ड्राइवरों को बदलने में सक्षम होने की उम्मीद करते हैं और फिर भी एक निश्चित स्क्रीन का ट्रैक रखते हैं? वास्तविक सवाल यह है कि आप ऐसा क्यों करना चाहते हैं? –

+0

ठीक है, क्योंकि मैं थोड़ा मल्टी-मॉनीटर टूल लिख रहा हूं और प्रत्येक स्क्रीन के लिए सेटिंग्स को सहेजने की आवश्यकता है। –

उत्तर

0

मैं हो रही द्वारा इस हल डिवाइस आईडीआई EnumDisplayDevices एपीआई के साथ। प्रत्येक स्क्रीन के लिए अद्वितीय होना प्रतीत होता है और उदाहरण के लिए ड्राइवर अद्यतन के बाद नहीं बदला जाता है।

डब्लूएमआई मेरे लिए सवाल से बाहर है क्योंकि मैंने इसे पहले कोशिश की थी और यह केवल मेरे मल्टी-मॉनिटर सेटअप के साथ एक मॉनिटर लौटाता है।

0

WinForms के बजाय WMI आज़माएं। (। रों DisplayDetails वर्ग जैसे)

निम्नलिखित पोस्ट पर नज़र रखता है और उनके विवरण प्राप्त करने के लिए कैसे पता चलता है: Monitor ID and Serial Number

संपादित करें:

मेरे सुझाव:

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

मेरे पास दो मॉनीटर हैं और वह क्वेरी केवल एक ही लौटाती है –

संबंधित मुद्दे