Processing Ajax...

Close Dialog


Close Dialog

Close Dialog

A recent AVG and Avast antivirus update is preventing DisplayFusion 9.9 from launching on some systems.
If you're running into this issue, please update to the latest DisplayFusion 10.0 Beta.

Move Unwanted Windows Off of a Monitor

This function checks all of the windows of a monitor every second. If a window doesn't belong to Skype, the script moves the window to another monitor.
Minimum Version
Created By
Thomas Malloch (BFS)
Date Created
Mar 17, 2015
Date Last Modified
Mar 17, 2015

Scripted Function (Macro) Code

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)
		//run this script until the user cancels it
			//enumerate window handles from monitor 2
			foreach(IntPtr handle in BFS.Window.GetVisibleWindowHandlesByMonitor(2))
				//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 we got this far, this window handle is unwanted.
				//move it to another monitor
				BFS.Window.MoveToMonitor(3, handle);				
			//sleep for one second before we check again