如何获取控制台应用程序的屏幕大小?

时间:2012-05-20 17:47:52

标签: c# .net console-application screen-size

如何在控制台应用程序中获取屏幕大小?

3 个答案:

答案 0 :(得分:9)

var w = Console.WindowWidth;
var h = Console.WindowHeight;

<强> - 编辑 -

Screen.PrimaryScreen.Bounds 
Screen.PrimaryScreen.WorkingArea

答案 1 :(得分: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"));
            }               
        }

答案 2 :(得分:1)

如果要通过屏幕大小更改控制台应用程序的大小 我们首先必须获得最大的窗口宽度和高度。

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 有效...