using System;
using System.Drawing;
using System.Diagnostics;
// The 'windowHandle' parameter will contain the window handle for the:
// - Active window when run by hotkey
// - Window Location target when run by a Window Location rule
// - TitleBar Button owner when run by a TitleBar Button
// - Jump List owner when run from a Taskbar Jump List
// - Currently focused window if none of these match
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
//enumerate window handles from monitor 1
foreach(IntPtr handle in BFS.Window.GetVisibleWindowHandlesByMonitor(1))
{
//get the window's appId
uint appId = BFS.Application.GetAppIDByWindow(handle);
//get the process that the window belongs to
Process process = Process.GetProcessById((int)appId);
//if the process is something we want on that monitor,
//continue to the next window handle
if(process.ProcessName.ToLower().Contains("teams") || process.ProcessName.ToLower().Contains("outlook") || process.ProcessName.ToLower().Contains("aws"))
continue;
//if we got this far, this window handle is unwanted.
//move it to another monitor
BFS.Window.MoveToMonitor(2, handle);
}
}
}