使用 .NET Core 控制台应用程序获取当前屏幕分辨率

Get current screen resolution using .NET Core Console Application

我在 VS 2019 中使用 .NET Core 3.1 控制台应用程序。我正在尝试获取当前屏幕分辨率(Windows 显示)。我不想获得显示器的最大分辨率。

我有以下有效的批处理代码。我只是想检查一下我的分辨率是不是 1024x768。

只是想将此代码转换为真正的 C# 代码,而无需通过 Process.start 启动 CMD。我想执行 if else 来检查分辨率是否为 1024x768。

这是我的批处理文件:

@echo off

for /f "delims=" %%# in  ('"wmic path Win32_VideoController  get CurrentHorizontalResolution,CurrentVerticalResolution /format:value"') do (
  set "%%#">nul
)

echo %CurrentHorizontalResolution%
echo %CurrentVerticalResolution%

pause

安装 NuGet package System.Management 后,您可以按照说明访问这些参数 here:

    //  https://wutils.com/wmi/

    //  Install package System.Management (6.0.0)
    //  using System.Management;

    //create a management scope object
    ManagementScope scope = new ManagementScope("\\.\ROOT\cimv2");

    //create object query
    ObjectQuery query = 
        new ObjectQuery("SELECT * FROM Win32_VideoController " 
                      + "Where DeviceID=\"VideoController1\"");

    //create object searcher
    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher(scope, query);

    //get a collection of WMI objects
    ManagementObjectCollection queryCollection = 
        searcher.Get();

    //enumerate the collection.
    foreach (ManagementObject m in queryCollection)
    {
        // access properties of the WMI object
        Console.WriteLine("CurrentHorizontalResolution : {0}", 
            m["CurrentHorizontalResolution"]);
        Console.WriteLine("CurrentVerticalResolution : {0}", 
            m["CurrentVerticalResolution"]);
    }