I am using Microsoft's Live Mesh program to remotely access a PC running Windows 7, running on 2 screens: one with 1920x1080 and the other 1920x1200 resolution.
I am accessing them via an old laptop with 1024x1078 resolution. The result is such tiny icons/commands that it is difficult to try and change the screen resolution from 2 high-res displays to the single low res display.
It would be great if there was a command line way of doing this. Or perhaps there is way through live mesh to do it. Any ideas?
9 Answers
Use QRes then say,
QRes.exe /x:800 /y:600 8 The nircmd freeware tool can do this.
To change the display to 1024 x 768 with a 24 bit color depth:
nircmd.exe setdisplay 1024 768 24
nircmd also has other very numerous functions.
3I found a Windows Powershell script sample*, provided by Microsoft Technet, that is able to change the screen resolution.
The best way to invoke it, I found, was from a separate Powershell script, that looks like this:
## This loads the function (defined in another script)
. C:\[YOUR-PATH]\Set-ScreenResolution
## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050(Note I had saved the Microsoft script as Set-ScreenResolution.ps1)
Then from the command line or Start->Run you can invoke the second Powershell script, which I named Invoke-Set-ScreenResolution.ps1 like this (the -noexit param is good at first for debugging, but you may want to remove it later on depending on whether you want the command window to close):
powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1*Original Source (no longer available)
1I used a combination of Qres.exe and Sleep.exe (put these in your Windows folder) in startup batch files to change resolution among 2 users. The actual script is as follows:
@echo off
sleep 2
QRes.exe /x:1280 /y:960(Whereas the low-res copy is Qres.exe /x:800 /y:600)
If you want your icons to stay where you want them... read on.
You'll need two more downloads:
Install Startup Delayer and place DesktopOK wherever you like, I used my 'user' folder. Organize your desktop, how you want it to be on every reboot.
In DesktopOK go to Options and tick "Restore by Windows Startup", right click on the newly made "Icon Layout" and click "Use this for: Restore at Windows Startup".
At this point you'll need to also check "Start DesktopOK with windows". The later two options will be unchecked automatically by of Startup Delayer later on.
Now locate DesktopOK in Startup Delayer and right-click "Delay" it.
Now there's only one thing left to do, make your startup batch file.
@echo off
sleep 2
QRes.exe /x:1280 /y:960
sleep 1
"C:\Program Files\r2 Studios\Startup Delayer\Startup Launcher.exe" /LaunchApps=CommonOf course you'll need to put it in your startup folder, the reason the process is so extensive with the icons is because DesktopOK can't handle the resolution switch, and wants to move icons while the resolution is being changed, so we needed to delay the registry startup, and this is the only way I found. I don't dare claim this to be the best way, but I do claim it works, I found no other way, and I came up with the process myself. It gets around every aspect of the situation by replacing icons where they belong per-user.
Thanks for being so flexible Microsoft!
Try Display Changer 2, which can do this, as well as start a program and change the resolution back when it's stopped running (which you MAY be able to get working with mesh, but YMMV)
2None of the already mentioned tools had all that I needed, so I came up with my own solution: ChangeScreenResolution.exe
Examples:
Change screen resolution of all monitors to 800x600px
ChangeScreenResolution.exe /w=800 /h=600Change screen resolution of all monitors to 800x600px with refresh rate of 60Hz and 32bit color depth
ChangeScreenResolution.exe /w=800 /h=600 /f=60 /b=32Set color depth of display with index 1 to 16bit
ChangeScreenResolution.exe /b=16 /d=1 Quick overview of the options:
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) 6 While somebody already mentioned Nirsoft's nircmd, the best tool from Nirsoft for this purpose is MultiMonitorTool.
It supports multi-monitor, saved configurations, 32 and 64 bit, changes in resolution, activation and orientation, etc.
1Worthy to note the solution through built-in wmic command of Windows Management Instrumentation
wmic desktopmonitor create screenheight=1024, screenwidth=768Though can result in:
ERROR:
Description = Provider is not capable of the attempted operationin some "providers"
1There is PoweShell funtion which does that described here
Set-DisplayResolution [-Width] <Object> [-Height] <Object> [-Force] [<CommonParameters>]The Set-DisplayResolution cmdlet changes the display resolution for Windows Server® 2012/2016. Specify both the width and the height in pixels. Unless you use the Force parameter, the cmdlet prompts you before it changes the settings. You can use the Get-DisplayResolution cmdlet to view the current resolution.