Starting programs on multiple desktops using powershell in windows 10

There are Powershell commands that work with virtual desktops. First, you will have to install virtual desktop module with Install-Module VirtualDesktop

# Switch to desktop 2 (count starts with 0)
Get-Desktop 1 | Switch-Desktop
    
# Move obs64.exe to desktop 3
(ps obs64)[0].MainWindowHandle | Move-Window (Get-Desktop 2) | Out-Null

You may have to wait for the starting process to initialize its window with Start-Sleep

Read more here: https://gallery.technet.microsoft.com/scriptcenter/Powershell-commands-to-d0e79cc5


This should get you on the right lines. It uses PowerShell, C# (inside PS), Windows shortcuts and basic commands. Save this in a .ps1 script.

$Source = @"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WindowsInput;

namespace CSharpPS
{
    public static class PS
    {
        public static void NewVD()
        {
            InputSimulator.SimulateKeyDown(VirtualKeyCode.LWIN);
            InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
            InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_D);
            InputSimulator.SimulateKeyUp(VirtualKeyCode.LWIN);
            InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);
        }        
    }
}
"@;
 
Add-Type -TypeDefinition $Source -Language CSharp -ReferencedAssemblies InputSimulator.dll

You can get the C# InputSimulator.dll from https://inputsimulator.codeplex.com/ - link is dead but wayback machine should help https://web.archive.org/web/20210501220444/https://archive.codeplex.com/?p=inputsimulator

Once the type has been added you can then call [CSharpPS.PS]::NewVD() to create new virtual desktop. From here you can run specific programs. You may need to manually set a sleep also. An example :

calc Start-Sleep -Milliseconds 500

Then open a new virtual desktop [CSharpPS.PS]::NewVD() Start-Sleep -Milliseconds 500 notepad

You could expand the C# class to allow changing between Virtual Desktops or minimizing applications like you required.