Alterar o arranjo de exibição via lote / linha de comando no Windows 7

12

Quero alterar o arranjo de exibição do meu computador via linha de comando. Eu tenho 2 monitores configurados, estendendo e quero alterar a configuração dos monitores de Dual Display para Single Display e voltar através da linha de comando.

Eu dei uma olhada nos QRes e nircmd. Embora o QRes não tenha suporte completo para multimonitor, o nircmd não pode desativar um monitor, apenas altera o estado primário e a resolução de telas separadas.

Seria apreciado se você souber de uma maneira de fazer isso.

Edit: vou postar minha solução aqui usando o trocador de exibição em climenoles resposta:

@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
private_meta
fonte
Sua postagem me deu a ideia para esse recurso que adicionei ao TvGameLauncher. Confira se ainda for relevante (veja minha resposta abaixo).
Ohad Schneider
Ei, eu sei que esta pergunta é antiga, mas quero saber se existe uma maneira de detectar a presença de outro monitor no Windows na linha de comando?
Durga Swaroop

Respostas:

8

Este utilitário pode ajudá-lo a: Trocador de exibição :

«O Display Changer altera a resolução da tela, executa um programa e depois restaura as configurações originais. Também pode alterar a resolução permanentemente e reorganizar os monitores em uma configuração de vários monitores »

Funciona em GUI ou linha de comando e é gratuito para uso pessoal ...

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

Espero que esta ajuda. Nos informe.

climenole
fonte
Voto positivo para uma boa resposta, mas não vai funcionar dessa maneira. Estou tentando lançar um jogo Steam dessa maneira. Iniciá-lo através do "steam: // rungameid / #" não funciona, pois não oferece nenhum executável. executar steam.exe com a opção -applaunch # altera a resolução, não inicia o jogo e muda imediatamente de volta (tão rápido que você quase não vê). executar o executável do jogo diretamente leva a um erro de carregamento. Boa ideia, mas não funcionou.
Private_meta)
Mas acabei de perceber que posso criar um arquivo em lote com o comando inicial para mudar para uma tela, iniciar o jogo em uma linha de comando separada e depois voltar depois que o programa terminar, tudo dentro de um lote, que teoricamente deve funcionar. Vou ter que tentar isso.
Private_meta)
OK. Diga-nos se isso funciona para você. Se o lote funciona bem você pode compilá-lo para ter um arquivo .exe Com esta por exemplo: batchcompiler.sourceforge.net :)
climenole
Obrigado. Isso funciona perfeitamente bem, exceto pelo fato de o steam.exe retornar imediatamente, então tenho que usar "pausar" ou o lote não funcionará.
Private_meta
8

Muito obrigado ao comentário de Bill Rodman neste tópico.

Combino esse utilitário com o comando Windows7 DisplaySwitch.exe: "C: \ Windows \ System32 \ DisplaySwitch.exe / internal" para alternar exclusivamente para o monitor principal. #######################

Testando isso, isso chama e imediatamente seleciona a tela para escolher via.

  • / internal chama a tela interna (sua tela principal)
  • / alterações externas na tela externa (não tenho certeza de quão bem ele lida quando há mais de uma tela)
  • / clone duplica as telas.
  • / extend alterna para configurações estendidas.

Como isso está chamando um caminho de arquivo, basta anexá-lo ao seu script e baboom em lote, alteração instantânea e eficaz da exibição. Uma boa idéia seria inserir esse togethor na interface do usuário do Agendador de tarefas do Windows, pois você pode chamar o caminho do arquivo e apresentar os argumentos; sempre que o evento TF2 acontecer, a exibição sempre mudará.

Jouster500
fonte
Funciona sem direitos de administrador, funciona a 1 clique de distância.
M3nda
Chamar sem argumentos mostra a barra lateral com as quatro opções.
José Tomás Tocino
6

Você estava próximo do NirCmd, mas o que você procura é o MultiMonitorTool do Nir :

O MultiMonitorTool é uma pequena ferramenta que permite executar algumas ações relacionadas ao trabalho com vários monitores. Com o MultiMonitorTool, você pode desativar / ativar monitores, definir o monitor primário, salvar e carregar a configuração de todos os monitores e mover janelas de um monitor para outro. Você pode executar essas ações na interface do usuário ou na linha de comandos, sem exibir a interface do usuário. O MultiMonitorTool também fornece uma janela de visualização, que permite assistir a uma visualização de todos os monitores do seu sistema.

A ferramenta 12noon parece boa, mas, exceto uma ferramenta oficial do MS, eu assumirei o NirSoft sobre qualquer outra ferramenta em qualquer dia.

Plugue sem vergonha: você pode estar interessado na ferramenta TvGameLauncher que escrevi exatamente para esse fim (alternando as telas principais para jogar). Ele também pode mudar para o áudio HDMI e impedir que o protetor de tela apareça enquanto você estiver reproduzindo (sem desativá-lo). Ele ainda suporta o protocolo Steam ( Steam://), para que você não precise usar o pausetruque. No entanto, ele não suporta a desativação de outros monitores, mas vou adicioná-lo à minha lista de tarefas (tenho outros recursos interessantes chegando, como a geração automática de atalhos de TV).

Editar - todos os recursos adicionados. Confira!

Ohad Schneider
fonte
1
NirSoft rochas. Eu apenas tive que encontrar uma solução para mudar meus monitores. Eu tenho uma configuração de dois monitores, quando um deles está ligado e outro está desligado. Portanto, não há nenhum modo sofisticado de área de trabalho, etc. Com o MultiMonitorTool, agora eu tenho apenas uma única linha: MultiMonitorTool.exe /switch 1 /switch 2que desliga o monitor em execução no momento e ao mesmo tempo desliga o outro. Eu coloquei este comando na tecla de macros do meu teclado e agora os monitores estão sendo trocados por um único toque de tecla!
Neurotransmitter
O MultiMonitorTool funcionou mal para mim com diferentes configurações de 3 monitores: alguns desativados, clonados etc. Aplicou algumas configurações com uma resolução de 0x0, o que fez com que o Nvidia Control Panel não pudesse abrir.
NateS
3

Embora eu saiba que esse é um thread antigo, é possível alternar entre os modos de exibição no Windows 10 usando as ferramentas disponíveis por padrão. O problema que encontrei foi que não havia um mecanismo "claro" para dizer que a tela era estendida versus clonada. Aqui está o meu protótipo de trabalho no 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}
}
DTE-IT
fonte
1

Outra boa é wsdisplaysettings. Ferramenta de linha de comando para configurar as exibições ao seu gosto. Também pode criar arquivos de configurações por conveniência.

John
fonte
Falha cerca de 80% do tempo no Windows 10. Ele funciona nos outros 20%.
NateS 8/11
1

As Configurações de exibição do WS da WizardSoft são uma ferramenta pequena e bastante simples de usar para iniciantes na linha de comando:

Ferramenta de linha de comando para salvar e restaurar as configurações de exibição do Windows para e do arquivo. Configuração fácil para vários monitores. Crie predefinições para laptop, tv, monitor e beamer. Ele pode salvar e restaurar a representação binária exata das configurações de exibição atuais do Windows.

O que eu queria era um atalho para mudar para estendido e outro para voltar à exibição única. Após 30 minutos de brincadeira com ele - sucesso!

Eu usei o Windows 7 e, depois de ler, readme.txtvocê também pode configurá-lo com facilidade.

A maneira mais simples de usar a ferramenta é salvar as configurações atuais de exibição em um arquivo com

WsDisplaySettings.exe -save filename.dis

e carregue e aplique as configurações com

WsDisplaySettings.exe filename.dis

Há também recursos mais avançados, conforme explicado no arquivo leia-me.

Se eu tivesse um negócio, pagaria pelo programa! (É grátis para uso pessoal.)

andrew
fonte
2
Bem-vindo ao Super Usuário! Por favor, leia como recomendar software em respostas , particularmente os bits em negrito ; edite sua resposta para seguir as diretrizes lá. Obrigado!
bertieb
1

Você pode usar DisplaySwitch.exe /internalpara alterar as configurações de exibição para usar apenas o monitor principal e DisplaySwitch.exe /extendvoltar à configuração de vários monitores. Mais informações aqui . Também funciona no Windows 10.

Jake Reece
fonte