使用 .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"]);
}
我在 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"]);
}