Cambiar la disposición de la pantalla a través de Batch / Command Line en Windows 7

12

Quiero cambiar la disposición de visualización de mi computadora a través de la línea de comando. Tengo 2 monitores configurados, extendidos, y quiero cambiar la configuración de los monitores de pantalla dual a pantalla individual y viceversa a través de la línea de comandos.

He echado un vistazo a QRes y nircmd. Si bien QRes carece por completo de soporte multimonitor, nircmd no puede desactivar un monitor, solo cambia el estado primario y la resolución de pantallas separadas.

Sería apreciado si conoces una manera de hacerlo.

Editar: publicaré mi solución aquí usando el cambiador de pantalla en climenoles respuesta:

@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
fuente
Su publicación en realidad me dio la idea de esta característica que agregué a TvGameLauncher. Compruébelo si aún es relevante (vea mi respuesta a continuación).
Ohad Schneider
Oye, sé que esta pregunta es antigua, pero quiero saber si hay una manera de detectar la presencia de otro monitor en Windows desde la línea de comandos.
Durga Swaroop

Respuestas:

8

Esta utilidad puede ayudarte: Cambiador de pantalla :

«Display Changer cambia la resolución de la pantalla, ejecuta un programa y luego restaura la configuración original. También puede cambiar la resolución de forma permanente y reorganizar los monitores en una configuración de múltiples monitores »

Funciona en GUI o línea de comando y es gratis para uso personal ...

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

Espero que esto ayude. Haznos saber.

climenole
fuente
Vota por una buena respuesta, pero no funcionará de esa manera. Estoy tratando de lanzar un juego de Steam de esa manera. Lanzarlo a través de "steam: // rungameid / #" no funciona ya que no le da ningún ejecutable. ejecutar steam.exe con la opción -applaunch # cambia la resolución, no inicia el juego e inmediatamente vuelve a cambiar (tan rápido que apenas lo ves). ejecutar el ejecutable del juego directamente conduce a un error de carga. Buena idea, pero no funcionó.
private_meta
Pero me di cuenta de que puedo crear un archivo por lotes con el comando inicial para cambiar a una pantalla, iniciar el juego en una línea de comando separada y luego volver a cambiar después de que el programa finalice, todo dentro de un lote, que debería funcionar teóricamente. Tendré que intentar eso.
private_meta
Bueno. Dinos si esto funciona para ti. Si el lote funciona bien, puede compilarlo para que tenga un archivo .exe Con esto, por ejemplo: batchcompiler.sourceforge.net :)
climenole
Gracias. Eso funciona perfectamente bien, excepto por el hecho de que steam.exe regresa inmediatamente, así que tengo que usar "pausa" o el lote no funcionará.
private_meta
8

Muchas gracias al comentario de Bill Rodman en este hilo.

Combino esta utilidad con el comando Windows 7 DisplaySwitch.exe: "C: \ Windows \ System32 \ DisplaySwitch.exe / internal" para cambiar de forma exclusiva al monitor principal. - Bill Rodman el 29 de enero de 2010 a las 12:17

Al probar esto, esto llama e inmediatamente selecciona la pantalla para elegir a través de.

  • / internal llama a la pantalla interna (su pantalla principal)
  • / cambios externos a la pantalla externa (no estoy seguro de qué tan bien se maneja cuando hay más de 1 pantalla)
  • / clone duplica las pantallas.
  • / extender cambia a configuraciones extendidas.

Dado que esto está llamando a una ruta de archivo, simplemente adjúntelo a su secuencia de comandos por lotes y baboom, cambio de pantalla instantáneo y efectivo. Una buena idea sería encadenar este togethor en la IU del Programador de tareas de Windows, ya que puede llamar a la ruta del archivo y darle los argumentos, luego, cada vez que ocurra su evento TF2, la pantalla siempre cambiará.

Jouster500
fuente
Funciona sin derechos de administrador, funciona a 1 clic de distancia.
m3nda
Llamarlo sin argumentos muestra la barra lateral con las cuatro opciones.
José Tomás Tocino
6

Estuviste cerca de NirCmd, pero lo que estás buscando es MultiMonitorTool de Nir :

MultiMonitorTool es una pequeña herramienta que le permite realizar algunas acciones relacionadas con el trabajo con múltiples monitores. Con MultiMonitorTool, puede deshabilitar / habilitar monitores, configurar el monitor primario, guardar y cargar la configuración de todos los monitores, y mover ventanas de un monitor a otro. Puede realizar estas acciones desde la interfaz de usuario o desde la línea de comandos, sin mostrar la interfaz de usuario. MultiMonitorTool también proporciona una ventana de vista previa, que le permite ver una vista previa de cada monitor en su sistema.

La herramienta 12noon se ve bien, pero salvo una herramienta oficial de MS, tomaré NirSoft sobre cualquier otra herramienta cualquier día.

Plug desvergonzado: puede que le interese la herramienta TvGameLauncher que escribí exactamente para este propósito (cambiar las pantallas principales para jugar). También puede cambiar a audio HDMI y evitar que el protector de pantalla aparezca mientras estás jugando (sin desactivarlo). Incluso es compatible con el protocolo Steam ( Steam://) para que no tenga que usar el pausetruco. Sin embargo, no admite la desactivación de sus otros monitores, pero lo agregaré a mi lista de tareas pendientes (tengo algunas otras características interesantes que se presentan como la generación automática de accesos directos de TV).

Editar: todas las funciones agregadas. ¡Echale un vistazo!

Ohad Schneider
fuente
1
NirSoft rocas. Solo tuve que encontrar una solución para cambiar mis monitores. Tengo una configuración de dos monitores, cuando uno de ellos está encendido y el otro está apagado. Así que no hay ningún modo de escritorio extendido sofisticado, etc. Con MultiMonitorTool, ahora solo tengo una sola línea: MultiMonitorTool.exe /switch 1 /switch 2que apaga el monitor que se está ejecutando actualmente y al mismo tiempo apaga el otro. ¡Puse este comando en la tecla de macros de mi teclado y ahora los monitores se cambian con solo presionar una tecla!
Neurotransmisor
MultiMonitorTool funcionó mal para mí con diferentes configuraciones de 3 monitores: algunos deshabilitados, clonados, etc. Aplicó algunas configuraciones con una resolución de 0x0, lo que hizo que el Panel de control de Nvidia no se pudiera abrir.
Nates
3

Si bien me doy cuenta de que este es un hilo antiguo, es posible alternar entre los modos de visualización en Windows 10 usando las herramientas disponibles de forma predeterminada. El problema con el que me encontré fue que no había un mecanismo "claro" para indicar que la pantalla estaba extendida, frente a clonada. Aquí está mi prototipo de trabajo en 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
fuente
1

Otra buena es wsdisplaysettings. Herramienta de línea de comandos para configurar pantallas a su gusto. También puede crear archivos de configuración para mayor comodidad.

John
fuente
Se bloquea aproximadamente el 80% del tiempo en Windows 10. Funciona el otro 20%.
Nates
1

La Configuración de pantalla WS de WizardSoft es una pequeña herramienta ordenada y bastante simple de usar para los novatos de la línea de comandos:

Herramienta de línea de comandos para guardar y restaurar la configuración de visualización de Windows desde y hacia el archivo. Fácil configuración de múltiples monitores. Crea presets para laptop, tv, monitor y beamer. Puede guardar y restaurar la representación binaria exacta de la configuración actual de la pantalla de Windows.

Lo que quería era un atajo para cambiar a extendido y otro para volver a una sola pantalla. Después de 30 minutos de jugar con él, ¡éxito!

Utilicé Windows 7 y, después de leerlo, readme.txttambién podría configurarlo fácilmente.

La forma más sencilla de usar la herramienta es guardar la configuración de visualización actual en un archivo con

WsDisplaySettings.exe -save filename.dis

y cargar y aplicar la configuración con

WsDisplaySettings.exe filename.dis

También hay funciones más avanzadas, como se explica en el archivo Léame.

Si tuviera un negocio, pagaría por el programa. (Es gratis para uso personal).

Andrés
fuente
2
¡Bienvenido a Super User! Lea cómo recomendar el software en las respuestas , particularmente los bits en negrita ; luego edite su respuesta para seguir las pautas allí. ¡Gracias!
bertieb
1

Puede DisplaySwitch.exe /internalcambiar la configuración de la pantalla para usar solo su monitor principal y DisplaySwitch.exe /extendvolver a la configuración de su monitor múltiple. Más información aquí . Funciona también en Windows 10.

Jake Reece
fuente