2011-02-22 18 views
47

विज़ुअल सी # का उपयोग करके मैं स्क्रीन रिज़ॉल्यूशन कैसे एकत्र और बदल सकता हूं?स्क्रीन रेज़ोल्यूशन प्राप्त करें और सेट करें

+5

क्या आपने देखा [यह कोडप्रोजेक्ट आलेख] (http://www.codeproject.com/KB/cs/csdynamicscrres.aspx)? – Justin

+0

@ जस्टिन: मिश्रण के लिए SystemInformation.PrimaryMonitorSize जोड़ें और इसे एक उत्तर के रूप में पोस्ट करें। –

उत्तर

0

विनफॉर्म में, एक स्क्रीन क्लास है जिसका उपयोग आप कंप्यूटर से जुड़े सभी डिस्प्ले के लिए स्क्रीन आयामों और रंग गहराई के बारे में डेटा प्राप्त करने के लिए कर सकते हैं। यहां दस्तावेज़ पृष्ठ हैं: http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx

स्क्रीन रिज़ॉल्यूशन बदलना मुश्किल है। एक संकल्प तृतीय पक्ष वर्ग है जो देशी कोड को लपेटता है जिसे आप अन्यथा हुक करते हैं। स्क्रीन रेज़ोल्यूशन को नई ऊंचाई और चौड़ाई पर सेट करने के लिए अपने क्रेशोल्यूशन नेस्टेड क्लास का उपयोग करें; लेकिन समझें कि ऐसा करने से केवल ऊंचाई/चौड़ाई संयोजनों के लिए काम किया जाएगा जो प्रदर्शन वास्तव में समर्थन करता है (800x600, 1024x768, आदि, 817x435 नहीं)।

69

स्क्रीन रिज़ॉल्यूशन पुनर्प्राप्त करने के लिए, आप System.Windows.Forms.Screen कक्षा का उपयोग करना चाहते हैं। Screen.AllScreens संपत्ति का उपयोग सिस्टम पर सभी डिस्प्ले के संग्रह तक पहुंचने के लिए किया जा सकता है, या आप प्राथमिक प्रदर्शन तक पहुंचने के लिए Screen.PrimaryScreen संपत्ति का उपयोग कर सकते हैं।

Screen कक्षा में Bounds नामक एक संपत्ति है, जिसका उपयोग आप कक्षा के वर्तमान उदाहरण के संकल्प को निर्धारित करने के लिए कर सकते हैं। उदाहरण के लिए, वर्तमान स्क्रीन के संकल्प निर्धारित करने के लिए:

Rectangle resolution = Screen.PrimaryScreen.Bounds; 

लिए संकल्प को बदलने, चीजों को एक छोटे से अधिक जटिल हो। This article (या this one) एक विस्तृत कार्यान्वयन और स्पष्टीकरण प्रदान करता है। उम्मीद है की यह मदद करेगा।

+0

धन्यवाद। यह वास्तव में आसान है। आप संकल्प का उपयोग कर सकते हैं। हाइट और रिज़ॉल्यूशन। इन आदेशों के साथ विथथ गुण। –

+0

क्या ऐसा करने के लिए कोई गैर-Winforms तरीका है? आईई, कुछ ऐसा है जो .NET कोर के साथ काम करेगा? –

-1

आप एकत्र करने के लिए स्क्रीन रिज़ॉल्यूशन आप एक WPF खिड़की में निम्नलिखित कोड चला सकते हैं (विंडो this के लिए क्या उल्लेख होता है) चाहते हैं:

System.Windows.Media.Matrix m = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice; 
Double dpiX = m.M11 * 96; 
Double dpiY = m.M22 * 96; 
+0

स्पष्ट रूप से यह काम नहीं कर रहा है, NullReferenceException के साथ। – ender

+0

प्रश्न बताते हैं: _ "विज़ुअल सी # का उपयोग करके मैं ** स्क्रीन रिज़ॉल्यूशन कैसे एकत्र और ** बदल सकता हूं?" _ – MickyD

6

सी # में इस संकल्प स्क्रीन पाने के लिए है :

बटन क्लिक करें या प्रपत्र लोड:

string screenWidth = Screen.PrimaryScreen.Bounds.Width.ToString(); 
string screenHeight = Screen.PrimaryScreen.Bounds.Height.ToString(); 
Label1.Text = ("Resolution: " + screenWidth + "x" + screenHeight); 
3

इस कोड WPF में पूरी तरह से काम करेंगे। आप इसे किसी भी पृष्ठ लोड या बटन क्लिक में उपयोग कर सकते हैं।

 string screenWidth =System.Windows.SystemParameters.PrimaryScreenWidth.ToString(); 

     string screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight.ToString(); 

     txtResolution.Text ="Resolution : "+screenWidth + " X " + screenHeight; 
संबंधित मुद्दे