是否可以通过命令行更改Windows屏幕分辨率?


28

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

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

如果有命令行的方式可以做到这一点。也许有办法通过实时网格来做到这一点。有任何想法吗?

Answers:


30

使用QRes然后说,

QRes.exe /x:800 /y:600

完全满足我需要的微型实用程序。
Bill Rodman

5
我将此实用程序与Windows7 DisplaySwitch.exe命令结合使用:“ C:\ Windows \ System32 \ DisplaySwitch.exe / internal”可独家切换到主监视器。
比尔·罗德曼

Displayswitch.exe还具有命令行参数,可让您创建将设置特定显示模式的快捷方式。/ internal / clone / extend / external
JJS 2012年

5
不适用于Windows x64。
Fantius 2014年

最新版本似乎可以在Windows 10 64位上正常工作。-不过,这似乎并不是解决和单独监控的一种方式。它始终只能在主屏幕上运行。-只要您只有两台显示器,其他人发布的(使用DisplaySwitch)的
骇客

17

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

nircmd.exe setdisplay 1024 768 24

nircmd还具有其他许多功能。


1
如果您使用的是像我这样的不支持24位彩色的笔记本电脑。您可能需要将24更改为32-nircmd.exe setdisplay 1024 768 32
Julian

为什么它没有永久改变?但是暂时申请?
YumYumYum

7

我找到了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

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

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

powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1

1
正是医生订阅的,非常感谢!
Larphoid

5

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

@echo off
sleep 2
QRes.exe /x:1280 /y:960

(而低分辨率副本是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

安装Startup Delayer并将DesktopOK放在您喜欢的任何位置,我使用了“用户”文件夹。整理桌面,

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

现在,在Startup Delayer中找到DesktopOK,然后右键单击“ Delay”。

现在只剩下一件事情要做,那就是创建启动批处理文件。

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


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

感谢您如此灵活的Microsoft!


4

尝试使用Display Changer 2,它可以执行此操作,还可以启动程序并在停止运行时更改分辨率(您可以使用网格物体,但是可以使用YMMV)


2

前面提到的工具都没有我所需的全部,因此我想出了自己的解决方案:ChangeScreenResolution.exe

例子:

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

ChangeScreenResolution.exe /w=800 /h=600

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

ChangeScreenResolution.exe /w=800 /h=600 /f=60 /b=32

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

ChangeScreenResolution.exe /b=16 /d=1 

选项概述:

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)

我尚未测试您的解决方案,但为自己创建了+1 :)
托马斯

好吧,我最终对其进行了测试,并且从简单性的角度来看,它比上面的其他选项更喜欢它。但是,它对我不起作用(我的显示适配器有问题)。不过,实用性极差!
托马斯

@Thomas出了什么问题?如果使用所有设备,则必须适用于所有设备。您应该在输出中看到适配器是否失败。就我而言,它始终是虚拟的。我可以查看是否可以提供此修复程序。
亚历山大·陶本科伯

1
您的实用程序有什么许可证?
迈克尔·卢卡斯

1
@MichaelLucas,没有实际的许可证,但是您可以随意使用它;-)感谢您的提问!
亚历山大·陶本科布

1

虽然有人已经提到过Nirsoft的nircmd,但Nirsoft为此目的最好的工具是MultiMonitorTool

它支持多显示器,保存的配置,32位和64位,分辨率的更改,激活和方向等。


提到的其他工具对我不起作用,但是对我有用。瞬间更改屏幕分辨率的出色工具-感谢发布。
Moshe Rubin

0

值得通过注意解决方案内置wmic的命令W¯¯ INDOWS 中号 anagement nstrumentation

wmic desktopmonitor create screenheight=1024, screenwidth=768

虽然会导致:

ERROR:
Description = Provider is not capable of the attempted operation

在某些“提供者”中


2
不起作用。尝试与管理员或没有,但相同。
YumYumYum
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.