Windows.Forms扩展桌面,检测C#中的单个屏幕

本文关键字:单个 屏幕 检测 Forms 扩展 桌面 Windows | 更新日期: 2023-09-27 18:33:10

我目前正在开发一个 C# 应用程序,能够"捕获"连接到运行它的计算机的所有屏幕非常重要。但是,使用Windows.Forms时存在一个问题,我似乎无法克服。

基本上,从API和我读到的其他所有内容中,您将使用AllScreens[i]来访问连接到系统的所有屏幕。但是,问题是,当我在扩展桌面中将两个屏幕连接到计算机时,它会将其检测为一个屏幕。例如,如果我运行:

System.Windows.Forms.Screen.AllScreens[0].Bounds.Width

我希望获得数组中第一个屏幕的宽度,但相反,我得到了两个屏幕的组合宽度。

实际上在运行时: AllScreens.Length返回 1。

有没有办法使用Windows.Forms实际检测单个屏幕?

Windows.Forms扩展桌面,检测C#中的单个屏幕

您可以尝试使用以下代码获取屏幕 bij 的所有信息:

string info = "";
foreach (var screen in System.Windows.Forms.Screen.AllScreens)
            {
                info = info + "Working Area: " + screen.WorkingArea.ToString() + " Primary Screen:" + screen.Primary.ToString() + "'n";
            }

此代码为所有屏幕提供单独的工作区。

在这里,您可以查看其他信息。

不确定我是否正确理解您的问题,但您可以使用以下内容来获取屏幕的工作区域

  System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Width

其中"所有屏幕"是可用屏幕的集合。