Получить разрешение экрана с помощью WMI / powershell в Windows 7

Я использую следующий сценарий, чтобы получить разрешение экрана в Windows с использованием WMI. Сценарий отлично работает, когда компьютер находится в ландшафтном режиме, но возвращает неправильные значения в портретном режиме. Работает правильно в XP и не пробовал в Vista. Может ли кто-нибудь подтвердить, что это ошибка в Windows 7 WMI.

strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_DesktopMonitor",,48) For Each objItem in colItems Wscript.Echo "-----------------------------------" Wscript.Echo "Win32_DesktopMonitor instance" Wscript.Echo "-----------------------------------" Wscript.Echo "ScreenHeight: " & objItem.ScreenHeight Wscript.Echo "ScreenWidth: " & objItem.ScreenWidth Next 

Для записи, код PowerShell:

 Get-WmiObject -Class Win32_DesktopMonitor | Select-Object ScreenWidth,ScreenHeight 

Я получаю те же значения в Пейзаж или в портретном режиме.

ОБНОВИТЬ:

В среде с несколькими мониторами вы можете получить информацию обо всех мониторах:

 PS> Add-Type -AssemblyName System.Windows.Forms PS> [System.Windows.Forms.Screen]::AllScreens BitsPerPixel : 32 Bounds : {X=0,Y=0,Width=1280,Height=800} DeviceName : \\.\DISPLAY1 Primary : True WorkingArea : {X=0,Y=0,Width=1280,Height=770} BitsPerPixel : 32 Bounds : {X=1280,Y=0,Width=1920,Height=1200} DeviceName : \\.\DISPLAY2 Primary : False WorkingArea : {X=1280,Y=0,Width=1920,Height=1170} 

Вы можете захватить это из Win32_VideoController WMI Win32_VideoController . Свойство VideoModeDescription включает разрешение экрана и глубину цвета.

 (Get-WmiObject -Class Win32_VideoController).VideoModeDescription; 

результат

 1600 x 900 x 4294967296 colors 

То же, что и другие ответы, однако для простого cmd:

wmic path Win32_VideoController get VideoModeDescription

Ответ @Say Levy выше точно сообщает о ширине / высоте, которая была активной при запуске сеанса powershell. Если вы поворачиваете монитор после запуска PS, он продолжает сообщать исходные, теперь неправильные значения.

Класс SystemInformation предоставляет другой способ получить ориентацию, и он изменяется в текущем сеансе PS, даже если дисплей поворачивается после запуска сеанса.

 Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.SystemInformation]::ScreenOrientation Angle0 [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize IsEmpty Width Height ------- ----- ------ False 1680 1050 

Поверните монитор, затем …

 [System.Windows.Forms.SystemInformation]::ScreenOrientation Angle90 [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize IsEmpty Width Height ------- ----- ------ False 1050 1680 

https://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation(v=vs.110).aspx

Это моя попытка:

 @echo off Mode 45,3 & color 0A Title Dislpay Resolution by Hackoo 2018 Set "WMIC_Command=wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVerticalResolution /format:Value" Set "H=CurrentHorizontalResolution" Set "V=CurrentVerticalResolution" Call :GetResolution %H% HorizontalResolution Call :GetResolution %V% VerticalResolution echo( echo Screen Resolution is : %HorizontalResolution% x %VerticalResolution% pause>nul & Exit ::**************************************************** :GetResolution FOR /F "tokens=2 delims==" %%I IN ( '%WMIC_Command% ^| find /I "%~1" 2^>^nul' ) DO FOR /F "delims=" %%A IN ("%%I") DO SET "%2=%%A" Exit /b ::**************************************************** 

Вы можете получить все доступные разрешения с помощью этой команды:

 $Query = "SELECT * FROM CIM_VideoControllerResolution" $res = Get-WMIObject -query $Query | Select Caption 
Interesting Posts

AngularJS – сброс значения $ scope.value не изменяет значение в шаблоне (случайное поведение)

Как воспроизводить видео в android из папки с ресурсами или сырой папкой?

Удалить определенные строки в txt-файле через пакетный файл

Что мне нужно учитывать при покупке оборудования для удовлетворения моих потребностей?

Как вы протираете незапланированное дисковое пространство?

Как перенести черепаху в LOGO?

Почему я получаю сообщение об ошибке «(304)« Не изменено »на некоторых ссылках при использовании HttpWebRequest?

Виртуальное наследование c ++

Rstudio rmarkdown: как портретный, так и альбомный макет в одном PDF-файле

Утилита для отображения статуса живой клавиатуры и мыши для обучения и скринкастов

Шаблон строителя и большое количество обязательных параметров

Сохраните файлы трейлеров QuickTime на компьютер без Pro

Преобразовать карту в POJO

Глубокая копия словарей дает ошибку анализа в Xcode 4.2

Как преобразовать ANSI-кодированный файл в UTF-8 с помощью Notepad ++?

Давайте будем гением компьютера.