任何通过命令行更改 Windows 屏幕分辨率的方法?

Bil*_*man 32 windows windows-7 resolution windows-live-mesh

我正在使用 Microsoft 的 Live Mesh 程序远程访问运行 Windows 7 的 PC,该 PC 运行在 2 个屏幕上:一个分辨率为 1920x1080,另一个为 1920x1200。

我通过一台分辨率为 1024x1078 的旧笔记本电脑访问它们。结果是非常小的图标/命令,很难尝试将屏幕分辨率从 2 个高分辨率显示器更改为单个低分辨率显示器。

如果有一种命令行方式可以做到这一点,那就太好了。或者也许有办法通过实时网格来做到这一点。有任何想法吗?

小智 31

使用QRes然后说,

QRes.exe /x:800 /y:600
Run Code Online (Sandbox Code Playgroud)

  • 我将此实用程序与 Windows7 DisplaySwitch.exe 命令结合使用:“C:\Windows\System32\DisplaySwitch.exe /internal”以专门切换到主显示器。 (6认同)
  • 不适用于 Windows x64。 (6认同)
  • 为什么这是最高回应? “我如何在 Windows 中做某事”绝不能涉及“下载这个程序!”我们不想要另一个程序。我们想知道如何在没有程序的情况下完成程序正在做的事情。我厌倦了将 QRes 视为这个问题的答案,因为它根本不是答案。这是一个替代方案。 (5认同)

har*_*ymc 18

的NirCmd免费的工具,可以做到这一点。
要将显示更改为具有 24 位色深的 1024 x 768:

nircmd.exe setdisplay 1024 768 24

nircmd 还有其他非常多的功能。

  • 如果您使用的是像我这样不支持 24 位颜色的笔记本电脑。您可能需要将 24 更改为 32 -- nircmd.exe setdisplay 1024 768 32 (2认同)

小智 10

我找到了Microsoft Technet 提供的Windows Powershell 脚本示例*,它可以更改屏幕分辨率。

我发现调用它的最佳方法是从一个单独的 Powershell 脚本中调用,如下所示:

## This loads the function (defined in another script)
. C:\[YOUR-PATH]\Set-ScreenResolution

## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050
Run Code Online (Sandbox Code Playgroud)

(注意我已将 Microsoft 脚本另存为Set-ScreenResolution.ps1

然后从命令行或开始->运行,您可以调用第二个 Powershell 脚本,我将其命名为Invoke-Set-ScreenResolution.ps1这样(该-noexit参数起初用于调试,但您可能希望稍后将其删除,具体取决于您是否需要命令窗口关闭):

powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1
Run Code Online (Sandbox Code Playgroud)

*原始来源(不再可用)

* Wayback 机器源


小智 6

我在启动批处理文件中使用了Qres.exeSleep.exe的组合(将它们放在您的 Windows 文件夹中)来更改 2 个用户之间的分辨率。实际脚本如下:

@echo off
sleep 2
QRes.exe /x:1280 /y:960
Run Code Online (Sandbox Code Playgroud)

(而低分辨率副本是Qres.exe /x:800 /y:600

----------------------------------------- -------------------------------------------------- ------------------------------------
-------------- -------------------------------------------------- -------------------------------------------------- -------------

如果你想让你的图标留在你想要的地方......继续阅读。
您还需要两次下载:



-> 启动延迟器:
http

://www.snapfiles.com/php/download.php?
id= 103272&a = 7130353&tag = 7329208&loc =2 -> DesktopOK http://www.softwareok.com /?Download=DesktopOK&goto=../Download/DesktopOK.zip

安装启动延迟器并将 DesktopOK 放在任何你喜欢的地方,我使用了我的“用户”文件夹。整理你的桌面,

在 DesktopOK 中,转到选项并勾选“通过 Windows 启动还原”,右键单击新制作的“图标布局”,然后单击“将此用于:在 Windows 启动时还原”。
此时,您还需要选中“使用 Windows 启动 DesktopOK”。后面的两个选项将在稍后由 Startup Delayer 自动取消选中。

现在在启动延迟器中找到 DesktopOK 并右键单击“延迟”它。

现在只剩下一件事要做,制作您的启动批处理文件。

@echo off
sleep 2
QRes.exe /x:1280 /y:960
sleep 1
"C:\Program Files\r2 Studios\Startup Delayer\Startup Launcher.exe" /LaunchApps=Common
Run Code Online (Sandbox Code Playgroud)


当然你需要把它放在你的启动文件夹中,图标的过程如此广泛的原因是因为 DesktopOK 无法处理分辨率切换,并且想要在更改分辨率时移动图标,所以我们需要延迟注册表启动,这是我找到的唯一方法。我不敢说这是最好的方法,但我确实声称它有效,我没有找到其他方法,我自己想出了这个过程。它通过替换每个用户所属的图标来解决情况的各个方面。

感谢微软如此灵活!


Pho*_*shi 5

试试Display Changer 2,它可以做到这一点,以及启动一个程序并在它停止运行时将分辨率改回来(你可以使用网格,但 YMMV)


Ale*_*orb 5

已经提到的工具都不具备我所需要的全部功能,因此我想出了自己的解决方案:ChangeScreenResolution.exe

例子:

将所有显示器的屏幕分辨率更改为 800x600px

ChangeScreenResolution.exe /w=800 /h=600
Run Code Online (Sandbox Code Playgroud)

将所有显示器的屏幕分辨率更改为 800x600px,刷新率为 60Hz,色深为 32 位

ChangeScreenResolution.exe /w=800 /h=600 /f=60 /b=32
Run Code Online (Sandbox Code Playgroud)

将索引 1 的显示颜色深度设置为 16bit

ChangeScreenResolution.exe /b=16 /d=1 
Run Code Online (Sandbox Code Playgroud)

选项快速概览:

Possible options (you can set OR query)
  Setting options
    /w=<width>      Width in pixel       eg 800
    /h=<height>     Height in pixel      eg 600
    /f=<frequency>  display refresh rate eg 60
    /b=<bpp>        bits per pixel       eg 32

  Querying options
    /l              list all connected display devices
    /m              list all available mode settings

  Filtering options
    /d=<device>     devices to modify/query, separated by comma, eg:
                      all (default)
                      0 (monitor with index 0, see option /l)
                      0,2 (monitors with index 0 and 2)
                      \\.\DISPLAY1 (name of display, see option /l)
Run Code Online (Sandbox Code Playgroud)