我在 VS 2019 中使用 .NET Core 3.1 控制臺應用程式。我正在嘗試獲取當前的螢屏解析度(Windows 顯示)。我不想獲得顯示幕的最大解析度。
我有以下有效的批處理代碼。我只想檢查我的解析度是否為 1024x768。
只想將此代碼轉換為真正的 C# 代碼,而無需通過Process.start. 我想執行 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
uj5u.com熱心網友回復:
安裝后,您可以按照此處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"]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/445662.html
