在Windows 7上通过批处理/命令行更改显示安排


12

我想通过命令行更改计算机的显示排列。我有2个显示器设置,扩展,我想将显示器设置从双屏显示更改为单屏显示,然后通过命令行返回。

我看过QRes和nircmd。QRes完全缺乏多显示器支持,但nircmd无法禁用显示器,只能更改主要状态和单独屏幕的分辨率。

如果您知道一种方法,将不胜感激。

编辑:我将在climenoles中使用显示转换器在这里发布我的解决方案:

@echo off
REM setting to single screen
echo *** Disabling Screen 2 *** 
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

echo Starting TF2 -fullscreen -novid -console -w 1920 -h 1200
REM Starting Team Fortress 2 fullscreen
cd C:\Program Files (x86)\Steam
Steam.exe -applaunch 440 -fullscreen -novid -console -w 1920 -h 1200

REM pausing because steam.exe returns before TF2 quits
echo Press a key to reenable Screen 2
pause
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary

您的帖子实际上为我提供了我添加到TvGameLauncher中的此功能的想法。检查一下是否仍然有用(请参阅下面的答案)。
Ohad Schneider 2014年

嘿,我知道这个问题很旧,但是我想知道是否可以通过命令行检测Windows中是否存在其他监视器?
杜尔加·斯瓦鲁普

Answers:


8

该实用程序可以为您提供帮助:Display Changer

«Display Changer更改显示分辨率,运行程序,然后恢复原始设置。它还可以永久更改分辨率,并在多显示器设置中重新排列显示器»

可在GUI或命令行中使用,可供个人免费使用...

http://12noon.com/?page_id=80

希望对您有所帮助。让我们知道


支持一个好的答案,但是那样行不通。我正在尝试以这种方式启动Steam游戏。通过“ steam:// rungameid /#”启动它不起作用,因为它没有可执行文件。使用-applaunch#选项运行steam.exe会更改分辨率,不会启动游戏,而是立即返回(速度太快,几乎看不到它)。运行游戏可执行文件直接导致加载错误。好主意,但是没用。
private_meta 2012年

但是我才意识到,我可以使用初始命令创建一个批处理文件,以切换到一个屏幕,在单独的命令行中启动游戏,然后在程序终止后再进行更改,这在理论上应该是全部进行的。我必须尝试一下。
private_meta 2012年

好的。告诉我们这是否适合您。如果该批次运行良好,则可以将其编译为一个.exe文件,例如:batchcompiler.sourceforge.net :)
climenole 2012年

谢谢。效果非常好,除了steam.exe立即返回的事实之外,因此我必须使用“ pause”,否则该批处理将无法工作。
private_meta'2

8

非常感谢Bill Rodman在此主题中的评论

我将此实用程序与Windows7 DisplaySwitch.exe命令结合使用:“ C:\ Windows \ System32 \ DisplaySwitch.exe / internal”可独家切换到主监视器。–比尔·罗德曼(Bill Rodman)2010年1月29日12:17

测试一下,这会调用并立即通过选择要选择的屏幕。

  • / internal调用内部屏幕(您的主显示屏)
  • / external更改为外部屏幕(我不确定在多于1个屏幕时它的处理情况如何)
  • / clone重复显示。
  • / extend切换到扩展设置。

由于这是在调用文件路径,因此只需将其附加到批处理脚本,即可快速,有效地更改显示。一个好主意是将这个字符串串入Windows Task Scheduler UI中,因为您可以调用文件路径,并为其提供参数,然后无论何时发生TF2事件,显示总是会切换。


在没有管理员权限的情况下工作,在1单击距离处工作。
m3nda

不带参数调用将显示带有四个选项的侧边栏。
–JoséTomásTocino

6

您与NirCmd关系密切,但您正在寻找的是Nir的MultiMonitorTool

MultiMonitorTool是一个小型工具,可让您执行一些与使用多个监视器有关的操作。使用MultiMonitorTool,您可以禁用/启用监视器,设置主监视器,保存和加载所有监视器的配置,以及将窗口从一个监视器移到另一监视器。您可以从用户界面或命令行执行这些操作,而无需显示用户界面。MultiMonitorTool还提供了一个预览窗口,使您可以观看系统上每个监视器的预览。

12noon工具看起来不错,但是除非有官方的MS工具,否则我将NirSoft取代其他任何工具。

无耻的插件:您可能对我为此专门编写的TvGameLauncher工具感兴趣(切换主要显示以玩游戏)。它还可以切换到HDMI音频,并在播放时阻止屏幕保护程序弹出(不禁用它)。它甚至支持Steam协议(Steam://),因此您无需使用pause技巧。它不支持禁用其他显示器,但是我将其添加到待办事项列表中(我还有其他一些很酷的功能,例如自动生成电视快捷方式)。

编辑-添加所有功能。一探究竟!


1
NirSoft的石头。我只需要找到一种解决方案即可切换显示器。我有两个显示器的设置,其中一个打开而另一个关闭。因此,没有任何花哨的扩展桌面模式等。有了MultiMonitorTool,现在我只有一个单一的代码:MultiMonitorTool.exe /switch 1 /switch 2关闭当前正在运行的监视器,同时关闭其他监视器。我将此命令放在键盘的宏键上,现在通过一次击键就可以切换显示器!
神经递质

MultiMonitorTool对于3种监视器的不同配置对我来说效果不佳:有些已禁用,已克隆等。它应用了某些分辨率为0x0的配置,这导致Nvidia控制面板无法打开。
NateS

3

虽然我意识到这是一个旧线程,但可以使用默认情况下可用的工具在Windows 10中切换显示模式。我遇到的问题是没有“清晰”的机制可以告诉我们显示是扩展的还是克隆的。这是我在PowerShell中工作的原型:

#ext_or_clone.ps1
#Toggle between Extend and Clone displays
#requires PowerShell 3

#Load Windows Forms .Net class
#if PowerShell < 3 use this instead: [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
Add-Type -AssemblyName System.Windows.Forms

#check the width of the virtual display, the "mode" width 
$currDispMode = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width

#check the width of the primary display
$oneScrWidth = [System.Windows.Forms.SystemInformation]::WorkingArea.width


#compare the two widths
switch ($currDispMode)
{
    #if the widths are the same,
    # it means the displays are in clone mode, so the mode should be extend
    $oneScrWidth{displayswitch.exe /extend}

    #if the VirtualScreen width is greater than the primary screen width
    # it means displays are in extend mode, so the mode should be clone
    {$_ -gt $oneScrWidth}{displayswitch.exe /clone}
}


1

WizardSoft的WS Display Settings是一个简洁的小工具,对于命令行新手来说非常简单:

命令行工具,用于在文件中保存和还原Windows显示设置。简单的多显示器设置。为笔记本电脑,电视,显示器和投影仪创建预设。它可以保存和还原当前Windows显示设置的确切二进制表示形式。

我想要的是一个快捷方式,可以切换到扩展,而另一个快捷方式可以返回到单个显示。经过30分钟的摸索-成功!

我使用Windows 7,阅读后readme.txt也可以轻松进行设置。

使用该工具的最简单方法是使用以下命令将当前显示设置保存到文件中

WsDisplaySettings.exe -save filename.dis

并加载并应用设置

WsDisplaySettings.exe filename.dis

如自述文件中所述,还有更多高级功能。

如果我经营一家公司,我将为该计划付款!(免费供个人使用。)


2
欢迎来到超级用户!请阅读如何在答案中推荐软件,特别是粗体的内容 ; 然后编辑您的答案以遵循那里的指导原则。谢谢!
bertieb

1

您可以用于DisplaySwitch.exe /internal将显示设置更改为仅使用主显示器,并DisplaySwitch.exe /extend切换回多显示器设置。更多信息在这里。同样适用于Windows 10。

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.