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 window to the left side, left middle, right middle, and right side (25% width, 33% height)

This script will move the window to the left side, left middle, right middle, and right side (25% width, 33% height).
Minimum Version
Created By
Date Created
Feb 9, 2017
Date Last Modified
Feb 9, 2017

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
// - 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)

                     //check to see if there was an error, if there was, exit function
                     if (windowHandle == IntPtr.Zero)        return;

                     //get the position of the window in the monitor, and the current monitor
                     Rectangle windowRect = BFS.Window.GetBounds(windowHandle);
                     Rectangle monitorRect = BFS.Monitor.GetMonitorWorkAreaByWindow(windowHandle);
                    int iFinalWinW = monitorRect.Width / 4;
                    int iFinalWinH = monitorRect.Height/3;

                    int iFinalWinX = ((windowRect.X < iFinalWinW ? monitorRect.X : ((windowRect.X-iFinalWinW)/ iFinalWinW+1) * iFinalWinW));
                    int iFinalWinY = ((windowRect.Y < iFinalWinH ? monitorRect.Y : ((windowRect.Y-iFinalWinH)/ iFinalWinH+1) * iFinalWinH));

                    if (( iFinalWinX + 2*iFinalWinW) > monitorRect.Width ) {
                        iFinalWinX = monitorRect.X;
                        iFinalWinY += iFinalWinH;
                    }  else iFinalWinX += iFinalWinW;
                    iFinalWinY =  iFinalWinY +iFinalWinH > monitorRect.Height ? monitorRect.Y: iFinalWinY;                   

                    BFS.Window.SetSizeAndLocation(windowHandle, iFinalWinX, iFinalWinY, iFinalWinW, iFinalWinH );