foreach (Screen screen in Screen.AllScreens) { int screenWidth = screen.Boundsh; int screenHeight = screen.Bounds.Height; Console.WriteLine("Screen Resolution: {0} x {1}", screenWidth, screenHeight); }获取的与实际电脑桌面不一致
时间: 2024-03-02 22:54:14 浏览: 15
如果使用`foreach (Screen screen in Screen.AllScreens)`获取的分辨率也不一致,可能是因为您的电脑设置了缩放比例,导致屏幕的分辨率与实际分辨率不一致。
您可以尝试使用WMI(Windows Management Instrumentation)来获取屏幕分辨率,WMI是Windows提供的一种管理计算机系统的基础设施,可以用来获取系统信息,包括屏幕分辨率。示例代码如下:
```
using System.Management;
...
// 获取所有显示器分辨率
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_VideoController");
foreach (ManagementObject obj in searcher.Get())
{
int screenWidth = Convert.ToInt32(obj["CurrentHorizontalResolution"]);
int screenHeight = Convert.ToInt32(obj["CurrentVerticalResolution"]);
Console.WriteLine("Screen Resolution: {0} x {1}", screenWidth, screenHeight);
}
```
上述代码中,使用WMI查询Win32_VideoController类,获取所有的视频控制器信息,然后遍历每个控制器,从中获取当前分辨率。
希望这个方法可以解决您的问题。