如何在控制台应用程序中获取屏幕尺寸?
问问题
12095 次
3 回答
10
var w = Console.WindowWidth;
var h = Console.WindowHeight;
- 编辑 -
Screen.PrimaryScreen.Bounds
Screen.PrimaryScreen.WorkingArea
于 2012-05-20T17:52:42.397 回答
3
如果你想获得显示大小,你可以使用 WMI(Windows Management Instrumentation)
var scope = new ManagementScope();
scope.Connect();
var query = new ObjectQuery("SELECT * FROM Win32_VideoController");
using (var searcher = new ManagementObjectSearcher(scope, query))
{
var results = searcher.Get();
foreach (var result in results)
{
Console.WriteLine("Horizontal resolution: " + result.GetPropertyValue("CurrentHorizontalResolution"));
Console.WriteLine("Vertical resolution: " + result.GetPropertyValue("CurrentVerticalResolution"));
}
}
于 2012-05-20T18:19:35.460 回答
2
如果您希望通过屏幕大小来更改控制台应用程序的大小,我们首先必须获得窗口的最大宽度和高度。
var largestWindowX = Console.LargestWindowWidth;
var largestWindowY = Console.LargestWindowHeight;
对于 1920x1080 的屏幕,最大的 X 和 Y 值是 X:240 和 Y:66。通过将值写入屏幕,我们可以手动更改屏幕尺寸以获得相应的 X 和 Y 坐标该屏幕尺寸.
现在我们取本例中最后一个屏幕尺寸的最大值 1600x1024 ,即 X:200 和 Y:62 并检查屏幕是否大于或等于显示器,并使控制台窗口变大。
if(largestWindowX >= 200 && largestWindowY >= 62)
{
//The values 200 and 40 can be changed depending on what you are making
Console.SetWindowSize(200, 40);
}
//add more if else statments depending how you wish to scale it as.
else
{
//Otherwise any screen size smaller than the sizes added make it this...
Console.SetWindowSize(/*Your X value*/, /*Your Y value*/);
}
如果您正在寻找一种从操作系统中找到显示大小的方法,我不知道,因为我不是高级程序员,只需要了解一些这种庞大的语言。
不过,从技术上讲,您可以使用上述变量的值。例如:
if(largestWindowX == 240 && largestWindowY == 66)
{
Console.WriteLine("This is a 1920x1080 screen");
}
我不确定这是否是告诉屏幕尺寸的准确方法。否则,如果需要全屏Alt+Enter工作...
于 2018-08-12T00:59:15.623 回答