سؤال

وكيف يمكن للمرء النوافذ استطلاع لمعرفة ما تعلق الشاشات ودقة ما تكون قيد التشغيل في؟

هل كانت مفيدة؟

المحلول

في C #: على Screen الدرجة يمثل جهاز عرض أو أجهزة عرض متعددة على نظام واحد. تريد السمة Bounds.

foreach(var screen in Screen.AllScreens)
{
    // For each screen, add the screen properties to a list box.
    listBox1.Items.Add("Device Name: " + screen.DeviceName);
    listBox1.Items.Add("Bounds: " + screen.Bounds.ToString());
    listBox1.Items.Add("Type: " + screen.GetType().ToString());
    listBox1.Items.Add("Working Area: " + screen.WorkingArea.ToString());
    listBox1.Items.Add("Primary Screen: " + screen.Primary.ToString());
}

نصائح أخرى

واستخدم الطبقة شاشة .

ويمكنك ان ترى كل من المراقبين في مجموعة Screen.AllScreens، والتحقق من قرار وموقف كل واحد باستخدام الخاصية Bounds.

لاحظ أن بعض بطاقات الفيديو ودمج اثنين من المراقبين إلى واحدة شاشة واسعة جدا، لذلك أن ويندوز يعتقد أن هناك شاشة واحدة فقط. إذا كنت تريد، يمكنك أن تحقق ما إذا كان عرض على الشاشة هو أكثر من ضعف ارتفاعه. إذا كان الأمر كذلك، فإنه على الأرجح فترة الأفقي ويمكنك التعامل معها على أنها شاشتين متساوية. ومع ذلك، وهذا هو أكثر تعقيدا ولا تحتاج للقيام بذلك. ويدعم يمتد الرأسية أيضا لكن أقل شيوعا.

http://msdn.microsoft.com/en-us/magazine /cc301462.aspx

وGetSystemMetrics هي وظيفة مفيدة يمكنك استخدامها للحصول على جميع أنواع ذات أبعاد عالمية، مثل حجم رمز أو ارتفاع توضيحية النافذة. في نظام التشغيل Windows 2000، هناك معايير جديدة مثل SM_CXVIRTUALSCREEN وSM_CYVIRTUALSCREEN للحصول على الحجم الفعلي للشاشة لنظم رصد متعددة. نوافذ نوبي والايجابيات، أيضا، يجب أن تحقق من وثائق GetSystemMetrics لمشاهدة كافة مختلف المقاييس نظام (أبعاد) يمكنك الحصول عليها. رؤية SDK منصة للحصول على أحدث في http://msdn.microsoft. كوم / مكتبة / EN-US / SYSINFO / sysinfo_8fjn.asp . GetSystemMetrics هي وظيفة مفيدة لك في كثير من الأحيان تحتاج إلى استخدام، ويبدو أن أشياء جديدة مع كل نسخة من Windows.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top