- Display Changer II configures your monitors.
- Display Changer II runs your application. (optional)
- Display Changer II restores the original configuration. (optional)
Display Changer II changes your Windows display resolution, runs a program, then restores the original settings. This is useful for games and home-theater computers. I wrote Display Changer II because many programs run best under a particular resolution (e.g., 640×480 with 8-bit color depth or 1920×1080 with a 24 Hz refresh rate). I grew tired of manually changing the Windows display settings manually, so I wrote Display Changer II to do it automatically.
Display Changer II changes your Windows desktop width, height, color depth, refresh rate, and rotation temporarily or permanently (via a configuration file). Display Changer II can run another application in a specific display resolution and return to the previous resolution when the application finishes. It can change the resolution permanently and rearrange the monitors in a multiple-monitor setup. Display Changer II can also duplicate (clone) your monitors, extend the desktop to multiple monitors, configure only the primary PC screen, and configure only the secondary screen.
Display Changer II uses configuration files to specify display settings. It can create configuration files from existing settings, which eliminates the need for you to edit the files yourself. The configuration file specifies every setting for each monitor, including the very precise refresh rates needed for home-theater systems.
(Unfortunately, Display Changer II cannot modify the Windows DPI (scaling factor). There is currently no Microsoft API that offers this feature. Although some applications hack at the Registry to modify the DPI, they require the user to restart Windows, which Display Changer II tries to avoid. If Microsoft does offer this feature at some point, I plan to update Display Changer II to take advantage of it.)
Download (Supports 32- and 64-bit Windows 10)
Download 1.5.3 (Supports 32- and 64-bit Windows 8.1)
Download 1.5.0 (Supports 32- and 64-bit Windows 7)
Each ZIP file contains both 32-bit (x86) and 64-bit (x64) Windows executables. This way, you can easily create shortcuts that quickly change to the display configuration you want. There’s a command-line switch to direct all output to the clipboard (instead of a window), so you can also use Display Changer II in a command-line batch file or script using the Command Prompt or PowerShell.
Display Changer II is free for non-profit personal or educational use. (U.S. 501(c) organizations are one example.)
If you’d like to use it in a commercial environment (e.g., to release with a product you sell, to release with a product you use internally, or to manage your organization’s computers), you must purchase a commercial license. A commercial license entitles your company to unlimited use of Display Changer II.
Resellers: please contact me directly for pricing.
dc2.exe switches command-line (optional)
If a command line is specified, Display Changer II will open that application after changing your monitor configuration. In that case, the specified configuration is only temporary because the current configuration is restored after the application exits. This is very useful if you want to run a specific application in a different configuration (e.g., a larger or smaller resolution) but want to return to your desired configuration after you’re finished with the application.
|This switch will create a configuration file that represents the current display configuration. This is an easy way to create the configuration file that you can use to change to this configuration.|
|When creating a configuration file, use the current display settings instead of the ones|
that Windows has stored. This switch is useful in unusual cases where the configuration
stored by Windows has become corrupted but the video driver has adjusted it to present
a valid, current configuration. (Basically, if DC2 doesn’t create a valid configuration file without this switch, try using it.)
|Change the displays to the configuration represented by the specified configuration file.|
|Sets the monitor configuration to clone the primary display to all secondary monitors.|
|Sets the monitor configuration to extend the desktop across all monitors.|
|Sets the monitor configuration to use only the main PC screen (e.g., the laptop display).|
|Sets the monitor configuration to use only the secondary display (e.g., the projector).|
|If the specified configuration will not work as it is, this tells Windows to reset the video driver when updating the display settings.|
|If the specified configuration will not work as it is, this tells Windows not to ignore some of the settings, such as when they’re the same as the current settings.|
|If the specified configuration will not work as it is, this allows Windows to make some changes to the settings in order to make it succeed.|
|Indicates that the specified configuration should not be permanent. You can return to the previous configuration by using the |
|Change to the previously-saved configuration (i.e., a configuration that was set without using the |
|This reports whether the specified settings are valid. If the optional path is specified, it will also create a configuration file representing the configuration that it would have used. This can be useful in verifying that Display Changer II has interpreted your configuration file correctly. If you contact Support, please create a file using this switch and e-mail it with your issue.|
|Sends all output to the clipboard instead of using Windows message boxes.|
|Create an XML file with all available resolutions (width, height, color depth, and frequency).|
|Create an XML file with detailed information that you can send to Support to help aid in troubleshooting. If you contact Support, please create a file using this switch and e-mail it with your issue.|
|If an application command line is specified, open the application in full-screen mode (i.e., maximized).|
Create a Configuration File
- Use Windows Control Panel’s Display to configure your monitors the way you like them.
- Use Display Changer II’s -create switch to create a configuration file.
> dc2.exe -create="ThreeMonitors.xml"
- Use Windows Control Panel’s Display to configure your monitors to some other configuration.
- Use Display Changer II’s -configure switch to re-establish your desired configuration.
> dc2.exe -configure="ThreeMonitors.xml"
You now have a configuration file that you can use whenever you want to establish that specific display configuration. You can follow the same steps to create additional configuration files.
Use an Application in a Custom Configuration
You can use Display Changer II to open an application in its own custom configuration. This is useful for large spreadsheets, certain games-\-especially children’s games, browsers, etc.
dc2.exe -configure="MySettings.xml" notepad.exe
dc2.exe -configure="Extended.xml" C:\Windows\Notepad.exe "MyData.txt"
dc2.exe -configure="MySettings.xml" -fullscreen notepad.exe "C:\Users\John\Documents\Report.txt"
You can establish a temporary configuration for a certain task and then return to the original configuration whenever you’re finished. This is useful for home-theater systems, spreadsheets, gaming, etc.
dc2.exe -configure="TemporaryConfiguration.xml" -temporary
- (do your task in this configuration)
Try using the
-test switch to see if Windows can accept the configuration.
dc2.exe -configure="ThreeMonitors.xml" -test
Try using the
-active switch to see if it will create a valid configuration file.
dc2.exe -create="ThreeMonitors.xml" -active
Try using the
-fuzzy switches when setting a new configuration. Create these troubleshooting files, contact 12noon.com’s Support, and also e-mail these files.
dc2.exe -configure="ThreeMonitors.xml" -test="ThreeMonitors_Test.xml"
Try using your command line with
notepad.exe (instead of whatever application you’re passing to Display Changer II). If it works with Notepad, but not with your application, the issue is with your application, not DC2.
Some applications, such as Steam, use other processes after they start. Display Changer II is unaware of these other processes, so if the executable specified on specified on its command line exits, DC2 restores the resolution. Also, many programs, especially games, set their own resolution and override whatever DC2 might have set. Test your command line with a simpler program (as described above) to determine if this is the issue. If it is, you can work around it by figuring out the command line your application uses to run this other process and specify that on DC2’s command line (which is difficult and cumbersome). Or you can create a batch file to switch to your custom resolution, run the application, then restore the resolution (which is easier and cleaner).
Example Contents of
start /wait dc2.exe -configure="MySpecialApp.xml" -temporary
start /wait my_special_app.exe
Alternatively, you can create multiple shortcuts for each of these commands and invoke them manually.
Configuration File Format
A configuration file is a non-strict XML file. You can use the
-create switch to generate a configuration file from the current display settings. This is the recommended method because it is guaranteed to be in the correct file format. You can then easily modify the file to the desired configuration.
<monitors app-version="#.#.#" version="#" topology="Extend | Clone | External | Internal"> <monitor id="#" adapterHigh="0" adapterLow="#"> <name>MONITOR NAME</name> <source id="#"> <name>\\.\DISPLAY#</name> <path>\\?\PCI#VEN_10DE&DEV_1189&SUBSYS_84141043&REV_A...</path> </source> <size width="#" height="#" /> <position left="#" top="#" /> <color value="8bpp | 16bpp | 24bpp | 32bpp | Non-GDI" /> <rotation value="Identity | 90-degreesCW | 180-degreesCW | 270-degreesCW" /> <scaling value="Identity | Centered | Stretched | Aspect Ratio Centered Max | Custom | Preferred" /> <refresh numerator="#" denominator="#" /> <scanlineorder value="Unspecified | Progressive | Interlaced (upper field first) | Interlaced (lower field first)" /> </monitor> </monitors>
|The version of Display Changer II that created this file.|
|The version of this file format. In the future, it’s possible that the file format will change and it will be incompatible with older versions of Display Changer II.|
|The topology of this configuration. This isn’t used when setting a configuration; it’s only to describe the current configuration.|
|Specify which monitor to operate on. You must specify either the |
This value is (or seems to be) unique to all monitors. However, I have not tested a PC with multiple video cards yet, and it’s possible that it will be unique only for a single video card. But, if that’s the case, it seems as if it would be impossible to uniquely identify a single monitor.
|This value seems to always be zero. It will likely be removed in a future release.|
|This value can change between instances of Display Changer II, so it seems that it cannot be used to uniquely identify a monitor or video card. It will likely be removed in a future release.|
|The name of the monitor associated with these settings. If there is more than one monitor with the same name, you must use the |
|This specifies the source of this monitor’s video signal. Cloned monitors have the same source ID.|
|This value represents the video output that displays on this monitor.|
|This is the name of the video output. It may be removed in a future release.|
|This is the device path of the video adapter.|
|This specifies the width and height of the monitor’s display.|
|This specifies the location of this monitor’s display as the x- and y-coordinates of the left and top edges. The primary display is always at (0,0).|
|This specifies the color depth (bits-per-pixel) of this monitor’s display.|
|This specifies the orientation of this monitor’s display. |
|This specifies how the image will be adjusted to fit on the screen. From the Microsoft documentation: |
“The scaling … is a scaling intent rather than an explicit request to perform a scaling operation. If scaling is required (for example, source and target resolutions differ), [Windows] uses the scaling that the caller supplies. If the supplied scaling is not supported, [Windows] uses the graphics adapter’s default scaling. When the source and target resolutions that the caller passes to [Windows] are the same, [Windows] always sets identity scaling.”Possible values:
|This specifies the frequency of this monitor’s display. In order to specify a rational number, the refresh rate is expressed as a fraction: a numerator and a denominator. If you specify 0/0, Windows will use the optimal refresh rate, but you must also specify Unspecified for the scan-line-order. (See below.)|
|This specifies the scan-line ordering of this monitor’s display. If you specify 0/0 for the refresh rate, you must also set this to |
Display Changer II runs on Microsoft® Windows® 10. Display Changer II has both 32-bit and 64-bit executables.
1.7.0: Worked around Microsoft’s “incorrect monitor ID” bug even more. This version should fix all occurrences of the “Unable to find path” error. If you’ve seen this error before, please try this version.
1.6.0: Worked around a Microsoft bug that returns an incorrect monitor ID. If you’ve received the “Unable to find path” error with previous versions, this might fix that for you.
1.5.3: Removed unnecessary guard used in debugging.
1.5.2: Fixed potential crash when using the -debug switch and there’s an invalid display mode.
1.5.1: Added detail to an error message.
1.5.0: Fixed bug with -extend, -clone, -secondary, and -primary switches. Improved usage message.
1.4.1: Fixed launching window in normal mode.
1.3.2: Added -force and -no-optimize. Additional error messages. Improved usage message.
1.2.1: Fixed issue with multiple video cards. Added -active, -list, and -debug switches. Added 64-bit version.
1.0.5: Fixed issue with switching between clone and extended modes on three monitors.
1.0.4: Fixed issue with cloning two monitors.
1.0.3: Fixed clone and extend. Added -primary and -secondary switches.
1.0.2: Implemented opening a specified application and the -fullscreen switch.
1.0.0: Alpha release