Advanced Operation

Command-line Arguments

Multiscreen Blank supports multiple command-line arguments in order to allow scripting of screen blanking/revealing. Since it is a single-instance application, you may run multiple commands in sequence and they won't open multiple copies of the application. The following basic command-line switches are supported:

/minimized

Starts the application minimized. You may double-click on the notification area icon to restore the main application window. This argument may be combined with other arguments that make sense, e.g. monitor operations, but must appear first in that case.

/restore

Restores the application if it's already running minimized

/quit

Closes the application. This is useful for batch scripts where you need to run the program for a bit and then close it at the end.

/reset

If something went wrong and you can't get the program to open normally without crashing, you may reset its configuration to factory defaults by passing in this argument.

Operations: /blank, /reveal, /toggle, /dimXX, /toggledimXX

Performs the specified operation on the specified set of screens. You may define screens either by Windows hardware ID, group ID, or bounding rectangle. You may specify one or more monitors this way, but keep in mind that you may specify only existing monitors that show up in the UI (not arbitrary regions). The bounds and hardware ID may be obtained by right-clicking on the monitor in the main UI and clicking "Information..."

The following operations are available:

  • blank: Blanks the specified screen, i.e. fully fades it to black. Double-clicking on the screen will reveal it.
  • reveal: Reveals the specified screen.
  • toggle: If the screen is blank, reveals it. If the screen is not blank (including fully revealed or partially dimmed), blanks it. This operation applies to each screen individually – if screens A and B are blank while screen C is revealed, the result will be screens A and B being revealed while screen C is blanked. Toggling a dimmed screen will blank it.
  • dimXX where XX is a number from 00 to 99 : Dims the screen to the specified amount. A dimmed screen still allows you to interact with on-screen elements normally.
  • toggledimXX where XX is a number from 00 to 99 : A combination of toggle and dim, dims the screen if it is fully revealed and reveals the screen if it is dimmed or blanked.

The following selectors are available:

  • bounds: specifies a monitor via its bounds on the desktop.
  • id: specifies a monitor via hardware ID as assigned by Windows. Note that this can change if you add or remove monitors, so it is not recommended to rely on it.
  • name: specifies a monitor via its assigned name (case-insensitive). Use quotes around the name if it contains spaces.
  • group: specifies a monitor via group number.
  • current: specifies the screen currently containing the mouse.
  • all: specifies all monitors.
  • allexcept: modifier that inverts the selection. Must be used together with one of the other selectors.

Blank the second monitor according to Windows hardware ID

MultiscreenBlank2 /blank id \\.\DISPLAY2

Blank the monitor that you named "Side Screen"

MultiscreenBlank2 /blank name "Side Screen"

Blank the logical monitor located at (1920,0,1920,1200)

This corresponds to the rightmost monitor in a dual-monitor configuration where both monitors have a resolution of 1920x1200 pixels and are arranged horizontally in landscape orientation.

MultiscreenBlank2 /blank bounds 1920,0,1920,1200

Blank all monitors in the second group

Group indices start with 0, so the first group is 0, second group is 1, etc.

MultiscreenBlank2 /blank group 1

Combination of the three examples above

Order of the operands does not matter as the operation will be applied to all monitors simultaneously. It's OK to overlap, e.g. if a given monitor selected by bounds is also a member of the specified group.

MultiscreenBlank2 /blank id \\.\DISPLAY2 bounds 1920,0,1920,1200 group 1

Blank the monitor that the mouse is currently on

You may track the monitor the mouse is currently on with the "current" selector.

MultiscreenBlank2 /blank current

Blank all

When you specify "all", there is no logical benefit to specifying additional monitors since you've already specified all possible monitors. This will blank every monitor including the primary one that the main Multiscreen Blank window is on, so you will need to double-click on that screen in order to reveal it.

MultiscreenBlank2 /blank all

Blank all except the primary

The "allexcept" operator must appear immediately after the "/blank" switch.

MultiscreenBlank2 /blank allexcept id \\.\DISPLAY1

Mirroring

Mirroring is similar to blanking, with an additional region selector that allows selecting any part of the desktop. You can also specify a destination as either a screen or a region. If a destination screen is specified, mirroring is done in full-screen mode.

Mirror a region of the desktop to a specific monitor

MultiscreenBlank2 /mirror region 0,0,640,480 to id \\.\DISPLAY2

Mirror the second monitor to the default location

The default location is saved when the window is closed, so it will reopen in the same place (and with the same size) as last time.

MultiscreenBlank2 /mirror id \\.\DISPLAY2

Prompt to select a desktop region to mirror

MultiscreenBlank2 /mirror

Borderless mode

Display the mirror without window chrome, draggable and resizable similarly to a scrap

MultiscreenBlank2 /mirror region 0,0,640,480 to region 640,480,640,480 borderless

Flip and Rotate

You can flip the contents of the mirror to use as a teleprompter or HUD

MultiscreenBlank2 /mirror region 0,0,640,480 flip horizontal
MultiscreenBlank2 /mirror region 0,0,640,480 flip vertical
MultiscreenBlank2 /mirror region 0,0,640,480 flip both

You can also rotate the mirror if you're using a monitor with a different orientation. Note that rotations are limited to 90, 180, and 270 degrees – you cannot rotate to an arbitrary angle.

MultiscreenBlank2 /mirror region 0,0,640,480 to id \\.\DISPLAY2 rotate 90

Effects

You can apply several effects to your mirrors, which are the same effects you can apply to scraps

MultiscreenBlank2 /mirror region 0,0,640,480 effect grayscale,invert,pixelize

Background color

When your mirror is not stretched to fit and does not match the aspect ratio of the source, you can set the background color to something other than the default black.

MultiscreenBlank2 /mirror region 0,0,640,480 to id \\.\DISPLAY2 background red
MultiscreenBlank2 /mirror region 0,0,640,480 to id \\.\DISPLAY2 background #0099FF

Colors can be specified by name, HTML format (e.g. #FF0000), and a limited subset of other formats from the NPS Color Resolution Engine.

FPS counter

Display the FPS counter for troubleshooting purposes

MultiscreenBlank2 /mirror region 0,0,640,480 fps

Un-mirroring regions

To un-mirror a region or screen, you can use the unmirror command and specify the source region. All active mirrors of that region will then be closed.

MultiscreenBlank2 /unmirror id \\.\DISPLAY2
MultiscreenBlank2 /unmirror bounds 0,0,640,480

Note that this will not distinguish between a whole monitor specified by its hardware ID, current, or region. If you're trying to mirror two different sources to two different destinations but the sources happen to have identical bounds, all mirrors will be closed.

For more granular control, specify the tag argument when mirroring the screen. You can then un-mirror by tag. Multiple scraps can share a tag without sharing bounds; conversely you can distinguish between multiple mirrors from the same source by giving them different tags.

MultiscreenBlank2 /mirror region 0,0,640,480 to id \\.\DISPLAY2 tag foo
MultiscreenBlank2 /unmirror tag foo

You can also un-mirror all currently-mirrored screens in one step.

MultiscreenBlank2 /unmirror all

Scraps

As scraps are not bound to monitors, only the region selector can be used. You can additionally specify various parameters of the scrap or close existing ones.

Create a new scrap with default position, color, etc

MultiscreenBlank2 /cover

Create a new scrap to cover a specific location and set its opacity to 50%

MultiscreenBlank2 /cover region 20,20,300,100 opacity 50

Create a scrap with a specific color

MultiscreenBlank2 /cover region 20,20,300,100 color red
MultiscreenBlank2 /cover region 20,20,300,100 color #0099FF

Colors can be specified by name, HTML format (e.g. #FF0000), and a limited subset of other formats from the NPS Color Resolution Engine.

Freeze part of your screen

MultiscreenBlank2 /freeze region 20,20,300,100
MultiscreenBlank2 /cover region 20,20,300,100 image screenshot

Pixelize a region of your screen

MultiscreenBlank2 /cover region 20,20,300,100 image screenshot effect pixelize

Valid effects are: invert,grayscale, and pixelize. You may specify multiple effects by separating them with a comma; they will be applied in the order specified.

Create a masked image scrap

MultiscreenBlank2 /cover region 20,20,300,100 image "C:\images\circle.png" keycolor magenta

Create a scrap that sits behind other windows

MultiscreenBlank2 /cover region 20,20,300,100 position behind

Valid positions are: topmost,normal, and behind.

Closing scraps

Scraps can be closed by specifying their locations. Note that this is the current location of the scrap, so if you create a scrap via command-line but manually move it later, you will need to account for the new location.

MultiscreenBlank2 /uncover region 20,20,300,100

You can pass a "tag" when creating a scrap, allowing all scraps with a matching tag to be closed later even if they are moved manually.

MultiscreenBlank2 /cover region 20,20,300,100 tag foo
MultiscreenBlank2 /uncover tag foo

Note: in Multiscreen Blank prior to 2.3.2 the tag parameter was known as the id parameter. You can still use id in subsequent versions for scraps but not mirroring (where it conflicts with bounds selection, which is why it was renamed).

Close all scraps

MultiscreenBlank2 /uncover all

Frozen screen regions will be treated the same as other scraps. However you can also use the /unfreeze command to only unfreeze frozen regions and ignore other scraps.

MultiscreenBlank2 /unfreeze all

Final notes

  • The /toggle and /toggledimXX operation is applied at the screen level (not the group level) so if some of the monitors in a group are blank, they will be revealed (and the currently-revealed ones in that group will be blanked).
  • Dimming a monitor will apply regardless of current state (blank or revealed). Dimmed monitors are considered "revealed" for the purposes of the toggle operation, so toggling a dimmed monitor will fully blank it.
  • Dimming a monitor to 100% is the same as blanking. Dimming to 0% is the same as revealing.

Settings

Multiscreen Blank will remember the window layout and group assignment. Additionally, it has several options you may configure.

Start with Windows

Multiscreen Blank can be started with Windows – this will cause it to open minimized, in the notification area near the clock. This will save you a click if you routinely use Multiscreen Blank whenever you turn on your computer.

Add to desktop right-click menu

On Windows Vista and above, you can add a "Blank this screen" option to the desktop's right-click menu. This will blank the screen under the mouse cursor. If Multiscreen Blank is not currently running, it will be automatically started.

Check for Updates

If checked, you will receive a small, unobtrusive notification in the main window when a new version is available. There won't be any popups and the program will not update itself at this time. Uncheck this to prevent the program from attempting to check for updates.

Theme

MultiscreenBlank includes a light and dark theme to best match other software you use. The theme will not affect blanking functionality, only the color of the main window and menus. "Automatic" will select the light or dark theme based on your system's settings (Windows 10 only).

Blanking details

You can also configure blanking details: the fade duration, the easing function used for fading in and out, and whether or not to show the mouse cursor on blanked screens.

Shortcuts

You can specify shortcuts for left-click and middle-click of the notification area icon, as well as any number of additional shortcuts available via the notification icon's right-click menu. To specify an action, use any valid command line but exclude the "MultiscreenBlank2" part. So for example, to blank all monitors except the one currently containing the mouse, enter:

/blank allexcept current

Configuration storage

Settings are stored in a .ini file in the application directory. Alternatively, settings may be redirected to a user-specific directory if the application is installed to a shared folder. This file can be easily backed up and transferred to other systems (provided that the screen configuration is the same).

Troubleshooting

Desktop context menu entry remains after uninstalling / errors at startup after uninstalling

Multiscreen Blank is a standalone application and does not come with its own uninstaller. If you have enabled the desktop right-click option or configured the program to start with Windows, Windows has no way of knowing that the program was removed. Be sure to un-check both options in the Settings dialog before deleting MultiscreenBlank2.exe. If you have already deleted the file, you will need to run it again and toggle the options.

Alternatively you can manually delete the associated registry keys.

Start with Windows

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MultiscreenBlank

Add to desktop context menu

HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\MultiscreenBlank

Desktop context menu entry doesn't appear on Windows 2000 or XP

The menu relies on Windows functionality available in Windows Vista or later.

Windows DPI scaling

Starting with version 2.1, Multiscreen Blank supports Windows 10's per-monitor DPI scaling mode natively. All operations use physical device pixels. If you have a configuration file from a previous version of Multiscreen Blank, your group definitions may need to be redefined.

Due to the nature of Windows DPI scaling, it's possible that some configurations will cause the program to incorrectly determine physical monitor bounds, especially after switching scaling modes or adding/removing monitors with different scaling factors. If you are experiencing problems related to scaling (such as only part of the screen being blanked), sign out of Windows and tryt again.

If all else fails...

You may reset Multiscreen Blank's settings by running it with the "/reset" command-line argument or by manually deleting the MultiscreenBlank2.ini file where its settings are stored.