Изменить разрешение экрана в Windows 10 через командную строку можно быстро и без установки сторонних утилит. Для этого используют встроенные инструменты системы — QRes, nircmd или стандартные команды PowerShell. способ подходит, когда графический интерфейс недоступен или нужно автоматизировать процесс.
Расскажу, как это сделать тремя способами: с помощью утилиты QRes, через и с использованием сторонней nircmd. Каждый метод имеет свои нюансы — от простоты до гибкости настроек. Забегая вперёд: самый надёжный вариант для большинства пользователей — QRes, но обо всё по порядку.
Подготовка: проверяем текущее разрешение
Перед тем как менять настройки, убедитесь, что знаете текущее разрешение экрана. Это поможет избежать ошибок, если что-то пойдёт не так. Проверить параметры можно через командную строку:
Откройте Командную строку (Win + R → введите cmd → Enter) и выполните:
wmic path Win32_DesktopMonitor get ScreenWidth,ScreenHeight
Команда выведет ширину и высоту в пикселях. Например, 1920x1080 — это Full HD. Если мониторов несколько, выведет данные для каждого.
Также можно использовать PowerShell:
Get-WmiObject -Class Win32_DesktopMonitor | Select-Object ScreenWidth, ScreenHeight
Эти данные пригодятся, если потребуется вернуть исходные параметры.
Если командная строка не отображает данные, попробуйте запустить её от имени администратора. Для этого щёлкните правой кнопкой по значку «Пуск» и выберите «Командная строка (администратор)».
| Параметр | Описание | Пример |
|---|---|---|
/x:ширина | Задаёт ширину экрана в пикселях | /x:1920 |
/y:высота | Задаёт высоту экрана в пикселях | /y:1080 |
/r:частота | Устанавливает частоту обновления экрана в Гц | /r:60 |
/m:номер | Номер монитора (начиная с 0) | /m:1 |
Способ 1: Используем утилиту QRes
QRes — бесплатная утилита от Microsoft, специально предназначенная для изменения разрешения экрана через командную строку. Она поддерживает большинство видеокарт и мониторов, включая многомониторные системы.
Шаги:
- Скачайте QRes с официального сайта Microsoft (поискать
QRes.exeв поисковике). Распакуйте архив в удобную папку, например,C:\Tools\. - Откройте командную строку в этой папке. Для этого удерживайте
Shift, щёлкните правой кнопкой по пустой области в папке и выберите «Открыть окно команд». - Выполните команду для изменения разрешения. Например, чтобы установить
1280x720:
QRes.exe /x:1280 /y:720
Если нужно применить настройки ко второму монитору (если он подключён), добавьте параметр /m:1:
QRes.exe /x:1280 /y:720 /m:1
Утилита поддерживает и другие параметры:
Способ 2: PowerShell
Windows 10 позволяет менять разрешение через с использованием API-функций. Это метод для продвинутых пользователей, так как требует работы с низкоуровневыми настройками.
Сначала нужно получить список доступных режимов экрана. Для этого выполните в PowerShell:
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class DisplaySettings {
[DllImport("user32.dll")]
public static extern int EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmFormName;
public short dmLogPixels;
public int dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
}
}
"@
$devMode = New-Object DisplaySettings+DEVMODE
$devMode.dmSize = [System.Runtime.InteropServices.Marshal]::SizeOf($devMode)
$modeNum = 0
while ([DisplaySettings]::EnumDisplaySettings($null, $modeNum, [ref]$devMode) -ne 0) {
if ($devMode.dmPelsWidth -gt 0 -and $devMode.dmPelsHeight -gt 0) {
Write-Host "Режим: $($devMode.dmPelsWidth)x$($devMode.dmPelsHeight) @ $($devMode.dmDisplayFrequency) Гц"
}
$modeNum++
}
Этот скрипт выведет все доступные режимы для вашего монитора. Например:
Режим: 1920x1080 @ 60 ГцРежим: 1600x900 @ 60 ГцРежим: 1280x720 @ 60 Гц
Теперь можно применить нужный режим. Для этого используйте следующий скрипт (замените 1280, 720 и 60 на свои значения):
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class Display {
[DllImport("user32.dll")]
public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode);
[DllImport("user32.dll")]
public static extern int ChangeDisplaySettingsEx(string lpszDeviceName, ref DEVMODE lpDevMode, IntPtr hwnd, DisplaySettingsFlags dwflags, IntPtr lParam);
public const int ENUM_CURRENT_SETTINGS = -1;
public const int CDS_UPDATEREGISTRY = 0x00000001;
public const int CDS_TEST = 0x00000002;
public const int DISP_CHANGE_SUCCESSFUL = 0;
public const int DISP_CHANGE_RESTART = 1;
public const int DISP_CHANGE_FAILED = -1;
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmFormName;
public short dmLogPixels;
public int dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
}
[Flags()]
public enum DisplaySettingsFlags : uint {
CDS_NONE = 0,
CDS_UPDATEREGISTRY = 0x00000001,
CDS_TEST = 0x00000002,
CDS_FULLSCREEN = 0x00000004,
CDS_GLOBAL = 0x00000008,
CDS_SET_PRIMARY = 0x00000010,
CDS_VIDEOPARAMETERS = 0x00000020
}
}
"@
$devMode = New-Object Display+DEVMODE
$devMode.dmSize = [System.Runtime.InteropServices.Marshal]::SizeOf($devMode)
[Display]::EnumDisplaySettings($null, [Display]::ENUM_CURRENT_SETTINGS, [ref]$devMode) | Out-Null
$devMode.dmPelsWidth = 1280
$devMode.dmPelsHeight = 720
$devMode.dmDisplayFrequency = 60
$devMode.dmFields = 0x400000
$result = [Display]::ChangeDisplaySettingsEx($null, [ref]$devMode, [IntPtr]::Zero, [Display+DisplaySettingsFlags]::CDS_UPDATEREGISTRY, [IntPtr]::Zero)
if ($result -eq [Display]::DISP_CHANGE_SUCCESSFUL) {
Write-Host "Разришение изменено успешно!"
} else {
Write-Host "Ошибка: код $result"
}
Этот способ сложнее, чем QRes, но он не требует установки сторонних утилит. Однако если вы не уверены в своих силах, лучше использовать следующий метод.
Способ 3: Утилита nircmd
nircmd — это универсальная утилита для управления Windows из командной строки. Она поддерживает изменение разрешения экрана, но требует предварительной настройки.
Шаги:
- Скачайте nircmd с официального сайта разработчика (поискать
nircmd.x86.exeилиnircmd.x64.exeв зависимости от разрядности системы). - Поместите файл
nircmd.exeв папкуC:\Windows\или добавьте её в переменную окруженияPATH. - Откройте командную строку и выполните команду для изменения разрешения. Например:
nircmd.exe setdisplay resize 1280 720
Если нужно вернуть исходные настройки, используйте:
nircmd.exe setdisplay default
nircmd также позволяет задавать частоту обновления экрана:
nircmd.exe setdisplay resize 1280 720 60
Где 60 — частота в Гц.
Сравнение методов: что лучше?
Каждый из описанных способов имеет свои плюсы и минусы. Чтобы вам было проще выбрать, сравнил их в таблице:
| Критерий | QRes | PowerShell | nircmd |
|---|---|---|---|
| Простота использования | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
| Требует установки | Да (файл QRes.exe) | Нет | Да (файл nircmd.exe) |
| Поддержка многомониторных систем | Да | Да | Ограничена |
| Гибкость настроек | Высокая | Высокая | Средняя |
| Сложность для новичков | Низкая | Высокая | Средняя |
Если вам нужно быстро и просто изменить разрешение, выбирайте QRes. Для автоматизации задач в скриптах подойдёт nircmd. А PowerShell — для тех, кто любит копаться в деталях и не боится сложных команд.
Возможные ошибки и их решения
При изменении разрешения через командную строку могут возникать ошибки. Вот самые частые из них и способы их устранения:
- «Не удаётся найти указанный файл» — проверьте, что файл утилиты (
QRes.exeилиnircmd.exe) находится в текущей папке или в переменнойPATH. - «Не поддерживается данный режим» — проверьте, поддерживает ли ваш монитор и видеокарта выбранное разрешение. Используйте команду для получения списка доступных режимов.
- «Нет доступа» — запустите командную строку от имени администратора.
- Чёрный экран после изменения — подождите 15 секунд, система автоматически вернёт предыдущие настройки. Если этого не произошло, перезагрузите компьютер в безопасном режиме и верните настройки вручную.
⚠️ Внимание: Изменение разрешения через командную строку может привести к временной потере изображения на экране. Не изменяйте параметры, если не уверены, что они поддерживаются вашей системой. В случае проблем всегда можно вернуть исходные настройки с помощью командыQRes.exe /defaultилиnircmd.exe setdisplay default.
Как автоматизировать смену разрешения
Если вы часто меняете разрешение экрана, можно создатьниковый файл (.bat) для быстрого переключения. Например, создайте файл set_1280x720.bat со следующим содержимым:
@echo off
QRes.exe /x:1280 /y:720
Теперь достаточно дважды кликнуть по этому файлу, чтобы изменить разрешение.
Для переключения между несколькими режимами можно создать меню:
@echo off
echo Выберите разрешение:
echo 1. 1920x1080
echo 2. 1280x720
echo 3. 1024x768
set /p choice=Введите номер:
if %choice%==1 (QRes.exe /x:1920 /y:1080)
if %choice%==2 (QRes.exe /x:1280 /y:720)
if %choice%==3 (QRes.exe /x:1024 /y:768)
Автоматизация изменения разрешения через командную строку экономит время и избавляет от необходимости вручную настраивать параметры каждый раз.
Практическое руководство: пошаговая инструкция
Чтобы не упустить ни одной детали, собрал пошаговую инструкцию для самого надёжного способа — через QRes.
Как изменить разрешение экрана через QRes
Часто задаваемые вопросы
Можно ли изменить разрешение экрана без сторонних утилит?
Да, можно использовать или встроенные функции Windows API, как описано в способе 2. Однако это требует знания команд и работы с низкоуровневыми настройками, что может быть сложно для новичков.
Почему после изменения разрешения экран стал чёрным?
Это происходит, если выбранное разрешение не поддерживается вашим монитором или видеокартой. Подождите 15 секунд — автоматически вернёт предыдущие настройки. Если этого не произошло, перезагрузите компьютер в безопасном режиме и верните настройки вручную.
Как вернуть исходное разрешение экрана?
Если вы использовали QRes, выполните команду QRes.exe /default. Для nircmd подойдёт nircmd.exe setdisplay default. Если вы меняли настройки через PowerShell, перезагрузите компьютер — система настройки.
Можно ли изменить разрешение для второго монитора?
Да, в QRes для этого нужно указать параметр /m:1 (для второго монитора). Пример: QRes.exe /x:1280 /y:720 /m:1. В nircmd данная функция ограничена, поэтому лучше использовать QRes.