我目前正在使用C#开发一个应用程序,以便能够捕获"所有屏幕都连接到它运行的计算机上。但是使用Windows.Forms存在一个我似乎无法通过的问题。
基本上,从API和我读过的其他内容中,您将使用AllScreens [i]访问连接到系统的所有屏幕。 但问题是,当我在扩展桌面上将两个屏幕连接到计算机时,它会将其检测为一个屏幕。 举个例子,如果我跑:
System.Windows.Forms.Screen.AllScreens[0].Bounds.Width
我希望得到数组中第一个屏幕的宽度,但我得到两个屏幕的组合宽度。
实际上在跑步时:
AllScreens.Length
它返回1.
有没有办法使用Windows.Forms实际检测单个屏幕?
答案 0 :(得分:1)
您可以尝试使用以下代码获取屏幕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";
}
此代码为所有屏幕提供了独立的工作区域。
Here您可以查看额外的信息。
答案 1 :(得分:0)
不确定我是否正确理解了您的问题,但您可以使用以获取屏幕的工作区域
System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Width
AllScreens是可用屏幕的集合。