查找所有监视器的编号和分辨率

Cra*_*893 28 c# windows resolutions monitor

如何轮询窗口以查看连接的监视器以及它们运行的​​分辨率?

Joe*_*erg 51

在C#中:ScreenClass表示单个系统上的显示设备或多个显示设备.你想要这个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());
}
Run Code Online (Sandbox Code Playgroud)

  • 通过使用`foreach(Screen.AllScreens中的屏幕屏幕),这看起来更好. (2认同)

SLa*_*aks 5

使用Screen类.

您可以看到Screen.AllScreens阵列中的所有监视器,并使用该Bounds属性检查每个监视器的分辨率和位置.

请注意,某些视频卡会将两台显示器合并为一个非常宽的屏幕,因此Windows认为只有一台显示器.如果你愿意,你可以检查屏幕的宽度是否超​​过其高度的两倍; 如果是这样,它可能是一个横向跨度,您可以将其视为两个相等的屏幕.但是,这更复杂,您不需要这样做.垂直跨度也受支持但不太常见.