DeutschEspañolFrançaisItalianoNederlandsPortuguêsΕλληνικάРусскийالعربية中文(简体)中文(繁體)日本語한국어
 
Donate Bitcoins
Google
 
www smithii.com
 

res_set 1.5 has been released (09-Sep-07)

I could not find a reliable command line resolution changer, so I wrote res_set.

You can download the binary here and the source code here.

Here's the changelog:

res_set changelog

Version 1.5 - 03 Mar 07:

	Added additional resolutions per http://en.wikipedia.org/wiki/List_of_common_resolutions
	Removed SUXGA (1800x1440} as it doesn't seem to be used anywhere

Version 1.4 - 12 Jul 06:

	Standardized version information across all programs

Version 1.3 - 22 May 06:

	Added -Z | --raw           List all graphics modes (CAUTION!)
	Fixed command line parsing issue
	Updated documentation

Version 1.2 - 21 May 06:

	Added -o | --orientation n  Set display orientation to 'n' (0,90,180,270)
	Added -x | --positionx   n  Set display x position to 'x'
	Added -y | --positiony   n  Set display y position to 'y'
	Added -c | --current        Set/get current settings (not registry settings)
	Changed -d | --depth         to -b | --bits (--depth still works)
	Changed -E | --no-reset      to -R | --no-reset
	Changed -e | --reset         to -r | --reset
	Changed -i | --list-monitors to -L | --list-monitors
	Changed -m | --monitor       to -M | --monitor-name
	Changed -n | --min           to -i | --min
	Changed -o | --mode          to -e | --mode
	Changed -r | --refresh       to -f | --frequency (--refresh still works)
	Changed -u | --full-screen   to -T | --temporary (--full-screen still works)
	Changed -z | --monitor-no    to -m | --monitor (--monitor-no still works)

	Added ability to specify resolution using one of the following abbreviations:
	WUXGA  (1920x1200)
	SUXGA  (1800x1440} (Sorta Ultra XGA :)
	WSXGA+ (1680x1050)
	UXGA   (1600x1200)
	WSXGA  (1600x1024)
	SXGA+  (1400x1050)
	SXGA   (1280x1024)
	WXGA   (1280x720)
	XGA    (1024x768)
	SVGA   (800x600)
	VGA    (640x480)
	EGA    (640x400)
	CGA    (320x200)

Version 1.1 - 08 Apr 06:

	Added -s | --save          Settings will be permanently changed for the current user
	Added -g | --global        Settings will be permanently changed for all users
	Added -u | --full-screen   Change is temporary in nature
	Added -e | --reset         Settings will be changed, even if they are the same
	Added -E | --no-reset      Settings will be stored, but will not take effect
	Added -p | --primary       Device will become the primary device
	Added -t | --test          Tests if the requested graphics mode could be set

	These options set each of the following ChangeDisplaySettingsEx() flag options:

	CDS_UPDATEREGISTRY The graphics mode for the current screen will be changed dynamically and the graphics mode will be updated in the registry.
	                   The mode information is stored in the USER profile.
	CDS_GLOBAL 	       The settings will be saved in the global settings area so that they will affect all users on the machine. 
	                   Otherwise, only the settings for the user are modified. 
	                   This flag is only valid when specified with the CDS_UPDATEREGISTRY flag.
	CDS_FULLSCREEN 	   The mode is temporary in nature. 
	                   Windows NT/2000/XP: If you change to and from another desktop, this mode will not be reset.
	CDS_NORESET        The settings will be saved in the registry, but will not take effect.
	                   This flag is only valid when specified with the CDS_UPDATEREGISTRY flag.
	CDS_RESET 	       The settings should be changed, even if the requested settings are the same as the current settings.
	CDS_SET_PRIMARY    This device will become the primary device.
	CDS_TEST 	       The system tests if the requested graphics mode could be set.

	Added .rc and .ico files
	Improved build scripts
	Updated documentation

Version 1.0 - 06 Feb 06:

	Initial release

and here's the readme.txt:

res_set - Version 1.5 - Mar 03 2007
Copyright (c) 2005-2006 Ross Smith II (http://smithii.com) All Rights Reserved

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

Usage: res_set [options] [resolution]
Options:
-w | --width      x   Set horizontal resolution to 'x' (min/max allowed)
-h | --height     y   Set vertical resolution to 'y'   (min/max allowed)
-b | --bits       bpp Set color depth (bits/pixel) to 'bpp' (min/max allowed)
-f | --frequency  hz  Set refresh frequency to 'hz'    (min/max allowed)
-o | --orientation  n Set display orientation to 'n' (0,90,180,270)
-x | --positionx    n Set display x position to 'x'
-y | --positiony    n Set display y position to 'y'
-e | --mode         n Set display mode to 'n'
-m | --monitor      n Set/get display settings for monitor number 'n'
-M | --monitor-name x Set/get display settings for monitor named 'x'
-i | --min            Use minimum supported value for width/height/bits/freq
-a | --max            Use maximum supported value for width/height/bits/freq
-q | --query          Show current display settings and exit
-l | --list           List available display modes
-L | --list-monitors  List the names of the monitors
-Z | --raw            List all graphics modes (CAUTION!)
                      Even those not supported by the current monitor
-c | --current        Set/get current settings (not registry settings)
-s | --save           Settings are permanently changed for the current user
-g | --global         Settings are permanently changed for all users
-r | --reset          Settings are changed, even if they are the same
-R | --no-reset       Settings are stored, but will not take effect
-p | --primary        Selected monitor will become the primary monitor
-T | --temporary      Change is temporary in nature
-t | --test           Tests if the requested graphics mode could be set
-v | --version        Show version and copyright information and quit
-? | --help           Show this help message and quit

Examples:
 res_set -l 21                 & rem list the display modes
 res_set -e 21                 & rem set display to mode 21
 res_set xga                   & rem set resolution to 1024 x 768, depth/refresh to minimum for this resolution
 res_set -max xga              & rem set resolution to 1024 x 768, depth/refresh to maximum for this resolution
 res_set -w 800 -h 600         & rem set resolution to 800x600, depth/refresh to minimum for this resolution
 res_set 800 600               & rem same as above
 res_set -w 800 -h 600 -d 32 -r 60
 res_set -max                  & rem use highest supported resolution/depth/refresh values available
 res_set -max -f min           & rem use highest supported resolution/depth but the lowest refresh rate
 res_set -m 2 800 600          & rem set monitor 2's resolution to 800x600
 res_set -m 2 -x 200 -y -600 800 600 & rem set monitor 2's resolution to 800x600, and position to 200,-600

Also
--refresh alias for --frequency
--freq    alias for --frequency
--bpp     alias for --bits
--depth   alias for --bits
-d        alias for --bits

You can use / instead of - to preface single letter options, //width will *not* work.

Resolution can be entered as 'width height', or one of the following terms:

	320x200		CGA		Computer Graphics Adaptor
	640x400		EGA		Enhanced Graphics Adaptor
	640x480		VGA		Video Graphics Adaptor
	800x600		SVGA	Super VGA
	1024x768	XGA		eXtended Graphics Array
	1280x800	WXGA	Wide XGA
	1280x1024	SXGA	Super XGA
	1440x900	WXGA+	Wide XGA+
	1440x900	WSXGA	Wide SXGA
	1400x1050	SXGA	SXGA+
	1680x1050	WSXGA+	Wide SXGA+
	1600x1200	UXGA	Ultra XGA
	1920x1200	WUXGA	Wide UXGA
	2048x1536	QXGA	Quad XGA
	2560x1600	WQXGA	Wide QXGA
	2560x2048	QSXGA	Quad Super XGA
	3200x2048	WQSXGA	Wide QSXGA
	3200x2400	QUXGA	Quad Ultra XGA
	3840x2400	WQUXGA	Wide QUXGA
	4096x3072	HXGA	Hexadecatuple XGA
	5120x3200	WHXGA	Wide HXGA
	5120x4096	HSXGA	Hexadecatuple Super XGA
	6400x4096	WHSXGA	Wide HSXGA
	6400x4800	HUXGA	Hexadecatuple Ultra XGA
	7680x4800	WHUXGA	Wide HUXGA

Not all of the above modes will be available.

	Source:  http://en.wikipedia.org/wiki/List_of_common_resolutions

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

res_set will only allow you to set parameters to those that are reported by
Windows to be supported by your video card (or you use the --raw option).

Unfortunately, your monitor may not be able to support all of these modes.

Therefore, you should test each mode manually, before using res_set.

Failure to do so, may permanently damage your monitor, computer, and/or mind.

To avoid this, res_set will always select the mininum values for the color
depth and refresh rate, if you do not specify them.

If you do not specify the resolution, res_set will default to the current
resolution for the current monitor, or the monitor you have specified.

If you only specify the width/height, res_set will use the minimum value 
for the height/width supposed for the width/height you used.

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

Sources: http://www.vaughns-1-pagers.com/computer/video-resolution.htm
http://www1.us.dell.com/content/topics/global.aspx/vectors/en/2002_lcd?c=us&l=en&s=corp
http://www.videotechnology.com/0904/formats.html
http://www.berghell.com/whitepapers/Display%20Resolutions%20and%20Nomenclature%20-%20Display%20Sizes%20in%20Pixels%20-%20%20Horizontal%20by%20Vertical.pdf

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

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

$Id$

See also:
http://www.vaughns-1-pagers.com/computer/video-resolution.htm
http://www1.us.dell.com/content/topics/global.aspx/vectors/en/2002_lcd?c=us&l=en&s=corp
http://www.berghell.com/whitepapers/Display%20Resolutions%20and%20Nomenclature%20-%20Display%20Sizes%20in%20Pixels%20-%20%20Horizontal%20by%20Vertical.pdf

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Primary Monitor

Thanks for this excellent tool! Just two questions:

- It isn't clear how to use the -primary directive. How does one specify *which* device is to be primary? E.g. if I want the external monitor to be my primary.
- Is it possible with res_set to enable "mirroring" between two monitors? I'm making a batch file for my parents for them to show picasa slides on their TV; ideally it should set the screen resolution to match the TV (XVGA) and mirror the laptop and TV screens.

(Also cool that you're using Drupal)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
DeutschEspañolFrançaisItalianoNederlandsPortuguêsΕλληνικάРусскийالعربية中文(简体)中文(繁體)日本語한국어
 
Donate Bitcoins
Google
 
www smithii.com
 
Special thanks to Riester Rente Online for a generous donation!