I've been fiddling with this for a few hrs, a simple request, open big box on my side monitor, not the massive ultrawide primary. I don't know why it has a problem with this, but NOTHING works. scaling is set the same on both etc.
so i've written a script to sort it out. If you don't already use display fusion for your multi-monitor setup, you probably should the first version of the script uses 2 display fusion profiles with the same monitor setup but different primary monitors, so you have a lot of flexibility with this, you can change orientation etc in display fusion profiles, scaling, whatever.
DisplayFusion
steps to use it..
1. save to local machine as "bigbox primary.ps1" or whatever you want to call it
2. change your paths for display fusion and bigbox exes
3. create your display fusion monitor profiles as required, be sure to set "primary" as you want it in each profile.
4. turn off the setting in display fusion, options/advanced options to ask for confirmation for monitor profile switching via command line or api
5. adjust the script to call your profiles by adjusting the names in -monitorloadprofile "<name>" parameters
6. save the script
7.create a shortcut to "bigbox primary.ps1" and enter this into the target box: powershell.exe -NoExit -ExecutionPolicy Bypass -File "C:\Path\To\big box primary.ps1"
# Load the "bigbox" monitor profile
Start-Process "C:\Program Files\DisplayFusion\DisplayFusionCommand.exe" -ArgumentList '-monitorloadprofile "bigbox"' -NoNewWindow -Wait
# Start BigBox
Start-Process "D:\Launchbox\BigBox.exe"
# Wait until BigBox.exe is no longer running
do {
Start-Sleep -Seconds 2
} while (Get-Process -Name "BigBox" -ErrorAction SilentlyContinue)
# Load the "upstairs" monitor profile
Start-Process "C:\Program Files\DisplayFusion\DisplayFusionCommand.exe" -ArgumentList '-monitorloadprofile "upstairs"' -NoNewWindow -Wait
now, simply double click the script and it will do the following:
1. switch your primary monitor to the one of your choice, with optional settings based on display fusion profile.
2. start bigbox on the primary monitor
3. wait for bigbox to close, then set back to the display fusion profile of your choice.
MultiMonitorTool
Option for those who don't use display fusion. you can use a free tool called multimonitor tool, the only problem here is it seems to mess up the order of your screens when it restores, this might be ok if you have them in the correct order of your video card ports, i haven't tried that though.
1. download multimonitortool.exe from https://www.nirsoft.net/utils/multi_monitor_tool.html
2. put multimonitortool.exe in the same folder as the following script
3. adjust your primary monitors in this script as required (check your display settings for monitor IDs)
4. save the script as "bigbox mm primary.ps1"
5. create a shortcut to "bigbox mm primary.ps1" and enter this into the target box: powershell.exe -NoExit -ExecutionPolicy Bypass -File "C:\Path\To\big box mm primary.ps1"
# Get the script's current directory
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
# Set the primary monitor for bigbox using MultiMonitorTool
Start-Process "$scriptDir\MultiMonitorTool.exe" -ArgumentList "/SetPrimary 3" -NoNewWindow -Wait # Change '3' to your desired monitor ID
# Start BigBox
Start-Process "D:\Launchbox\BigBox.exe"
# Wait until BigBox.exe is no longer running
do {
Start-Sleep -Seconds 2
} while (Get-Process -Name "BigBox" -ErrorAction SilentlyContinue)
# Set the primary monitor back using MultiMonitorTool
Start-Process "$scriptDir\MultiMonitorTool.exe" -ArgumentList "/SetPrimary 1" -NoNewWindow -Wait # Change '1' to your desired monitor ID
hope you get some use out of these options.