Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Move Window to Current Monitor if it's Outside the Work Area

Description
If the top-left corner of the window is outside the work area, this script will move the window to the monitor that the mouse cursor is on.
Language
C#.net
Minimum Version
Created By
Keith Lammers (BFS)
Contributors
-
Date Created
Feb 7, 2018
Date Last Modified
Feb 7, 2018

Scripted Function (Macro) Code

using System;
using System.Drawing;

// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Trigger target when run by a Trigger 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)
	{
        // Get the current monitor's work area and the window's current location
		Rectangle monitorWorkArea = BFS.Monitor.GetMonitorWorkAreaByWindow(windowHandle);
		Rectangle windowBounds = BFS.Window.GetBounds(windowHandle);

        // If the X or Y values are less than the monitor's work area X/Y, move the window to the current monitor
		if (windowBounds.X < monitorWorkArea.X || windowBounds.Y < monitorWorkArea.Y)
            BFS.DisplayFusion.RunFunctionWithWindowHandle("Move Window to Current Monitor", windowHandle);
    }
}