2010-02-08 8 views
10

का उपयोग कर रहा है, यह जानने के लिए कि मैं यह जानने का प्रयास कर रहा हूं कि उपयोगकर्ता एकाधिक मॉनीटर का उपयोग कर रहा है या नहीं।उपयोगकर्ता कैसे कई मॉनीटर

मैं यह जानना चाहता हूं कि देशी सी ++ (Win32 API का उपयोग करके) और प्रबंधित कोड (.NET Framework का उपयोग करके) में यह कैसे करना है।

अग्रिम

+0

सी # यहाँ में कुछ बहुत ही सुंदर Linq कोड रोब फ़ोनसेका-Ensor द्वारा जो गणना करेगा उपयोग में आने वाली सभी मौजूदा स्क्रीन की सीमाएं: http://stackoverflow.com/questions/2176648/screen-overlay-for-screenshot/2176683#2176683 – BillW

उत्तर

12

धन्यवाद मैं तुम्हें सी # .NET दे सकते हैं:

if (Screen.AllScreens.Length > 1) 
{ 
    // Multiple monitors 
} 

संपादित करें: गूगल पर एक खोज निम्नलिखित कर दिया। यह 98 का ​​उल्लेख है/एमई तो यह कोई प्रासंगिक हो सकता है लेकिन सही दिशा में इशारा कर सकता है:

पर नज़र रखता है वर्ग नमूना में इस्तेमाल एपीआई विंडोज 98. में एकाधिक मॉनिटर से निपटने के लिए नए एपीआई हैं GetMonitorInfo, MonitorFromWindow और कर रहे हैं MonitorFromRect।

GetSystemMetrics API में कुछ नए स्थिरांक हैं (नीचे देखें) जिनका उपयोग एकाधिक मॉनीटर सिस्टम के मीट्रिक को निर्धारित करने के लिए किया जा सकता है। GetSystemMetrics API विंडोज वातावरण के बारे में जानकारी देता है। इस एपीआई का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि सिस्टम पर कितने मॉनीटर हैं, चाहे वे एक ही डिस्प्ले प्रारूप पर सेट हों, और वर्चुअल डेस्कटॉप का आकार।

http://support.microsoft.com/kb/194578

+0

अरे, मुझे मारो! हाहा –

+0

लॉल या जो करीब था :-) –

+0

धन्यवाद। दोनों उत्तर सटीक थे। मैं GetSystemMetrics फ़ंक्शन का उपयोग करके मॉनिटर्स की संख्या को SM_CMONITORS निरंतर तर्क के रूप में पास करने में सक्षम था। – Raphael

6

नेट में यह Screen.AllScreens .Length संपत्ति का उपयोग कर के रूप में सरल है। हालांकि C++ के बारे में भी निश्चित नहीं है।

6

SM_CMONITORS साथ और बंद तुम जाओ GetSystemMetrics ...

+0

एक भावना थी कि यह 'GetSystemMetrics' था। –

+0

दैनिक आधार पर तीन मॉनीटर का उपयोग करके मुझे यह तेजी से सीखने की आवश्यकता थी;> –

2

बस यहाँ C/C++ समाधान दस्तावेज़ के लिए:

int iMonitors = GetSystemMetrics(SM_MONITORS); 
संबंधित मुद्दे