MultiMonitorTool v1.63 - Multiple Monitors on Windows


MultiMonitorTool is a small tool that allows you to do some actions related to working with multiple monitors. With MultiMonitorTool, you can disable/enable monitors, set the primary monitor, save and load the configuration of all monitors, and move windows from one monitor to another. You can do these actions from the user interface or from command-line, without displaying user interface. MultiMonitorTool also provides a preview window, which allows you to watch a preview of every monitor on your system.

Using MultiMonitorTool

MultiMonitorTool doesn't require any installation process or additional dll files. In order to start using it, simply run the executable file - MultiMonitorTool.exe
The main window of MultiMonitorTool contains 2 panes: The upper pane displays the list of all monitors detected on your system. When you select a monitor in the upper pane, the lower pane displays the details of all visible windows on the selected monitor.

You can select one or more monitors in the upper pane, and then use the following options: Disable Selected Monitors (Ctrl+F6), Enable Selected Monitors (Ctrl+F7), Disable/Enable Switch (Ctrl+F8), or Set As Primary Monitor (Ctrl+F9) 
You can also select one or more Windows in the lower pane, and then use the 'Move Window To Next Monitor' and 'Move Window To Primary Monitor' options in order to easily move Windows from one monitor to the other.

Save/Load Monitors Configuration

MultiMonitorTool allows you to save the current configuration of all monitors on your system, including the screen resolution, colors depth, and monitor position of every monitor, by using the 'Save Monitors Configuration' option (Ctrl+Shift+S). 
You can restore back the saved monitors configuration by using the 'Load Monitors Configuration' option (Ctrl+Shift+L). 
You can also save/load the monitors configuration from command-line, by using the /SaveConfig and /LoadConfig command-line options.

Preview Window

The preview window shows you a preview of the monitor you select in the upper pane. It might be useful if non-primary monitors are turned off and you want to view the windows displayed in the other monitors. In order to enable/disable the monitor preview window, simply press F2. You can also resize the preview window to any size you like.

Command-Line Options

You can use the following command-line options to change the monitor configuration or to move windows automatically without displaying any user interface. 
The <Monitor> parameter in all command-line options may contain the following values:
  • Primary - Specifies that you want to do the action on the primary monitor.
  • Monitor Name, as it appears in the 'Name' column, for example: \\.\DISPLAY1 , \\.\DISPLAY2, \\.\DISPLAY3
  • Monitor Number - The number that appears in the monitor name. (1 for \\.\DISPLAY1, 2 for \\.\DISPLAY2, and so on...)

/disable <Monitors> Disables the specified monitors. You can specify a single monitor or multiple monitors.
Examples:
MultiMonitorTool.exe /disable 1
MultiMonitorTool.exe /disable \\.\DISPLAY3
MultiMonitorTool.exe /disable 1 2 3
/enable <Monitors> Enables the specified monitors.
Examples:
MultiMonitorTool.exe /enable 3
MultiMonitorTool.exe /enable \\.\DISPLAY1
MultiMonitorTool.exe /enable 3 2
/switch <Monitors> Switches the specified monitors between enabled and disabled state.
Examples:
MultiMonitorTool.exe /switch 3
MultiMonitorTool.exe /switch \\.\DISPLAY1
MultiMonitorTool.exe /switch \\.\DISPLAY2 \\.\DISPLAY3
/setmax <Monitors> Set the maximum resolution on the specified monitors.
Examples:
MultiMonitorTool.exe /setmax 3
MultiMonitorTool.exe /setmax \\.\DISPLAY2 \\.\DISPLAY3
/SetOrientation <Monitor> <Orientation [0, 90, 180, 270] > Set the orientation of the specified monitor.
Examples:
MultiMonitorTool.exe /SetOrientation 2 270
MultiMonitorTool.exe /SetOrientation \\.\DISPLAY2 180 \\.\DISPLAY3 90
MultiMonitorTool.exe /SetOrientation 1 0 2 0
/SetPrimary <Monitor> Set the primary monitor.
Examples:
MultiMonitorTool.exe /SetPrimary 2
MultiMonitorTool.exe /SetPrimary \\.\DISPLAY2
/SetNextPrimary Set the next available monitor as the primary monitor. For example, if you have a system with 3 monitors and the first monitor is the primary, running this command will set the second monitor as the primary. running this command again will set the third monitor as the primary. And... running this command again will set (again) the first monitor as the primary.
/PreviewOnly <Monitor> {x} {y} {width} {height} Allows you to run MultiMonitorTool in monitor preview only mode. In this mode, only the monitor preview window is displayed.
You must specify the monitor name to display in the preview window. Optionally, you can also specify the position and size to set the preview window.
Examples:
MultiMonitorTool.exe /PreviewOnly \\.\DISPLAY2
MultiMonitorTool.exe /PreviewOnly \\.\DISPLAY1 10 10 300 200
/SaveConfig <Filename> Saves the current configuration of all your monitors into the specified filename, including the screen resolution, colors depth, and monitor position.
You can load the saved configuration back into the system by using the /LoadConfig command-line option.
Example:
MultiMonitorTool.exe /SaveConfig "c:\temp\monitors1.cfg"
/LoadConfig <Filename> Loads the monitors configuration that you previouly saved with /SaveConfig
Example:
MultiMonitorTool.exe /LoadConfig "c:\temp\monitors1.cfg"

/MoveWindow <To Monitor> Process <Process Name>
/MoveWindow <To Monitor> Title <Title Text>
/MoveWindow <To Monitor> Class <Window Class>
/MoveWindow <To Monitor> All <From Monitor>
This command-line allows you to move windows from one monitor to the other, according to the specified conditions. You can also use this command-line option with /WindowLeft, /WindowTop, /WindowWidth, and /WindowHeight, in order to set the width/size of the moved window. (See examples below)
Here's some example:
  • Move all windows located on all monitors to the primary monitor: (The <From Monitor> parameter is omitted, so windows are moved from all monitors)
    MultiMonitorTool.exe /MoveWindow Primary All
  • Move all windows of Internet Explorer to the primary monitor:
    MultiMonitorTool.exe /MoveWindow Primary Process "iexplore.exe"
  • Move all windows of Firefox to the next monitor:
    MultiMonitorTool.exe /MoveWindow Next Process "firefox.exe"
  • Move all windows that their title contains the 'Hello World' string to '\\.\DISPLAY2' monitor:
    MultiMonitorTool.exe /MoveWindow 2 Title "Hello World"
  • Move all windows of Windows Explorer (with 'CabinetWClass' window class) to '\\.\DISPLAY3' monitor:
    MultiMonitorTool.exe /MoveWindow 3 Class "CabinetWClass"
  • Move all windows from '\\.\DISPLAY3' monitor to '\\.\DISPLAY2' monitor:
    MultiMonitorTool.exe /MoveWindow 2 All 3
  • Move all windows of Firefox to the next monitor, and set their position to (10, 10), relatively to the target monitor.
    MultiMonitorTool.exe /MoveWindow Next Process "firefox.exe" /WindowLeft 10 /WindowTop 10
  • Move all windows of Firefox to the next monitor, and set their width to (600, 400).
    MultiMonitorTool.exe /MoveWindow Next Process "firefox.exe" /WindowWidth 600 /WindowHeight 400
/MonitorPreviewWindow <0 | 1> Specifies whether to display the monitor preview window. 0 = No, 1 = Yes.
/PreviewMode <1 | 2> Specifies the preview mode. 1 = Fast and Low Quality, 2 = Slow and High Quality.
/DrawCursorPreview <0 | 1> Specifies whether to draw the cursor inside the preview window. 0 = No, 1 = Yes.
/HideInactiveMonitors <0 | 1> Specifies whether to hide inactive monitors. 0 = No, 1 = Yes.
/TrayIcon <0 | 1> Specifies whether to put an icon on the system tray. 0 = No, 1 = Yes.
/StartAsHidden <0 | 1> Specifies whether to start the main window as hidden. 0 = No, 1 = Yes.
Ths command-line option works only when TrayIcon option is turned on.
/AutoRefresh <0 | 1> Specifies whether to automatically refresh the monitors/windows information. 0 = No, 1 = Yes.
/stext <Filename> Save the monitors list into a regular text file.
/stab <Filename> Save the monitors list into a tab-delimited text file.
/scomma <Filename> Save the monitors list into a comma-delimited text file (csv).
/stabular <Filename> Save the monitors list into a tabular text file.
/shtml <Filename> Save the monitors list into HTML file (Horizontal).
/sverhtml <Filename> Save the monitors list into HTML file (Vertical).
/sxml <Filename> Save the monitors list to XML file.