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实际检测单个屏幕?
您可以尝试使用以下代码获取屏幕 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
其中"所有屏幕"是可用屏幕的集合。