¿Alguna forma de cambiar la resolución de pantalla de Windows a través de la línea de comando?

28

Estoy usando el programa Live Mesh de Microsoft para acceder de forma remota a una PC con Windows 7, que se ejecuta en 2 pantallas: una con 1920x1080 y la otra con resolución de 1920x1200.

Estoy accediendo a ellos a través de una computadora portátil vieja con una resolución de 1024x1078. El resultado son iconos / comandos tan pequeños que es difícil intentar cambiar la resolución de la pantalla de 2 pantallas de alta resolución a una sola pantalla de baja resolución.

Sería genial si hubiera una forma de línea de comando para hacer esto. O tal vez hay un camino a través de la malla en vivo para hacerlo. ¿Algunas ideas?

Bill Rodman
fuente

Respuestas:

30

Usa QRes y luego di:

QRes.exe /x:800 /y:600
Ceniza
fuente
Una pequeña utilidad que hace exactamente lo que necesito.
Bill Rodman el
55
Combino esta utilidad con el comando Windows7 DisplaySwitch.exe: "C: \ Windows \ System32 \ DisplaySwitch.exe / internal" para cambiar de forma exclusiva al monitor principal.
Bill Rodman el
Displayswitch.exe también tiene parámetros de línea de comandos que le permiten crear un acceso directo que establecerá un modo de visualización específico. / internal / clone / extend / external
JJS
55
No funciona con Windows x64.
Fantius
La última versión parece funcionar bien en Windows 10 de 64 bits. - Sin embargo, no parece ser una forma de abordar un monitor individual. Siempre funciona contra la pantalla principal. - El truco que otros publicaron (use DisplaySwitch) parece que podría funcionar, siempre que solo tenga dos monitores ...
BrainSlugs83
17

La herramienta gratuita nircmd puede hacer esto.
Para cambiar la pantalla a 1024 x 768 con una profundidad de color de 24 bits:

nircmd.exe setdisplay 1024 768 24

nircmd también tiene otras funciones muy numerosas.

harrymc
fuente
1
si está usando una computadora portátil como la mía que no admite color de 24 bits. Puede que tenga que cambiar el 24 a 32 - nircmd.exe setdisplay 1024 768 32
Julian
¿Por qué no se cambia permanentemente? ¿Pero la aplicación temporal?
YumYumYum
8

Encontré un ejemplo de script de Windows Powershell , proporcionado por Microsoft Technet, que puede cambiar la resolución de la pantalla.

Encontré que la mejor manera de invocarlo era desde un script de Powershell separado, que se ve así:

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

## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050

(Tenga en cuenta que había guardado el script de Microsoft como Set-ScreenResolution.ps1)

Luego, desde la línea de comandos o Inicio-> Ejecutar, puede invocar el segundo script de Powershell, que denominé Invoke-Set-ScreenResolution.ps1así (el -noexitparámetro es bueno al principio para la depuración, pero es posible que desee eliminarlo más adelante dependiendo de si desea la ventana de comandos cerrar):

powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1
Michael Lucas
fuente
1
Justo lo que el médico suscribió, ¡muchas gracias!
Larphoid
5

Utilicé una combinación de Qres.exe y Sleep.exe ( colóquelos en su carpeta de Windows) en los archivos por lotes de inicio para cambiar la resolución entre 2 usuarios. El script real es el siguiente:

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

(Mientras que la copia de baja resolución es Qres.exe /x:800 /y:600)

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

Si quieres que tus iconos se queden donde los quieres ... sigue leyendo.
Necesitará dos descargas más:



-> Startup Delayer:
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

Instale Startup Delayer y coloque DesktopOK donde quiera, utilicé mi carpeta 'user'. Organiza tu escritorio,

En DesktopOK, vaya a Opciones y marque "Restaurar mediante inicio de Windows", haga clic con el botón derecho en el "Diseño de icono" recién creado y haga clic en "Usar esto para: Restaurar al iniciar Windows".
En este punto, también deberá marcar "Iniciar DesktopOK con Windows". Las dos opciones posteriores serán desmarcadas automáticamente por Startup Delayer más adelante.

Ahora busque DesktopOK en Startup Delayer y haga clic derecho en "Delay".

Ahora solo queda una cosa por hacer: crear su archivo por lotes de inicio.

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


Por supuesto, tendrá que ponerlo en su carpeta de inicio, la razón por la cual el proceso es tan extenso con los íconos es porque DesktopOK no puede manejar el cambio de resolución y quiere mover los íconos mientras se cambia la resolución, por lo que necesitábamos para retrasar el inicio del registro, y esta es la única forma que encontré. No me atrevo a afirmar que esta sea la mejor manera, pero sí afirmo que funciona, no encontré otra forma y se me ocurrió el proceso. Evita todos los aspectos de la situación al reemplazar los iconos a los que pertenecen por usuario.

¡Gracias por ser tan flexible Microsoft!

Tinytox
fuente
4

Pruebe Display Changer 2 , que puede hacer esto, así como iniciar un programa y volver a cambiar la resolución cuando deje de ejecutarse (lo cual PUEDE poder trabajar con mesh, pero YMMV)

Phoshi
fuente
2

Ninguna de las herramientas mencionadas tenía todo lo que necesitaba, así que se me ocurrió mi propia solución: ChangeScreenResolution.exe

Ejemplos:

Cambiar la resolución de pantalla de todos los monitores a 800x600px

ChangeScreenResolution.exe /w=800 /h=600

Cambie la resolución de pantalla de todos los monitores a 800x600px con una frecuencia de actualización de 60Hz y una profundidad de color de 32 bits

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

Establezca la profundidad de color de la pantalla con índice de 1 a 16 bits

ChangeScreenResolution.exe /b=16 /d=1 

Descripción rápida de las opciones:

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)
Alexander Taubenkorb
fuente
No he probado tu solución, pero +1 para crear la tuya :)
Thomas
Bueno, terminé probándolo y lo prefiero por encima de las otras opciones anteriores en términos de simplicidad. Sin embargo, no funcionó para mí (un problema de adaptador de pantalla por mi parte). Aún así, una gran pequeña utilidad!
Thomas
@Thomas, ¿cuál era el problema? Si usa todos los dispositivos, tiene que funcionar para todos ellos. Debería ver en la salida si falla un adaptador. En mis casos siempre fue virtual. Puedo ver si puedo proporcionar una solución para eso.
Alexander Taubenkorb
1
¿Cuál es la licencia para su utilidad?
Michael Lucas
1
@MichaelLucas, no hay una licencia real, pero puede usarla como quiera ;-) ¡Gracias por preguntar!
Alexander Taubenkorb
1

Si bien alguien ya mencionó el nircmd de Nirsoft, la mejor herramienta de Nirsoft para este propósito es MultiMonitorTool .

Admite múltiples monitores, configuraciones guardadas, 32 y 64 bits, cambios en la resolución, activación y orientación, etc.

pgr
fuente
Las otras herramientas mencionadas no funcionaron para mí, pero esta sí. Excelente herramienta para cambiar las resoluciones de pantalla en un instante: gracias por publicar.
Moshe Rubin
0

Merece la pena indicar la solución a través de una función de wmicmando de W indows M GESTIÓN I nstrumentation

wmic desktopmonitor create screenheight=1024, screenwidth=768

Aunque puede resultar en:

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

en algunos "proveedores"


fuente
2
No funciona. Probado con administrador o sin pero igual.
YumYumYum