Я использую консольное приложение .NET Core 3.1 в VS 2019. Я пытаюсь получить текущее разрешение экрана (экран Windows). Я не хочу получать максимальное разрешение монитора.
У меня есть следующий пакетный код, который работает. Я просто хочу проверить мое разрешение 1024x768 или нет.
Просто хочу преобразовать этот код в настоящий код C# без запуска CMD с помощью Process.start
. Хочу реализовать если еще проверить разрешение 1024х768 или нет.
Вот мой командный файл:
@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
вы можете получить доступ к этим параметрам, как описано здесь:
// 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"]);
}