Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
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 Current Monitor (Selectable List)

Description
This script will show a list of open windows. When you choose the desired window from the list, it will get moved to the current monitor.
Language
C#.net
Minimum Version
Created By
Keith Lammers (BFS)
Contributors
-
Date Created
Aug 6, 2019
Date Last Modified
Aug 6, 2019

Scripted Function (Macro) Code

using System;
using System.Drawing;
using System.Collections.Generic;

public static class DisplayFusionFunction
{
	public static void Run(IntPtr windowHandle)
	{
        var windowTitlesList = new List<string>();

		// Build the list of open window titles
		foreach (IntPtr window in BFS.Window.GetVisibleAndMinimizedWindowHandles())
        {
            string windowTitle = BFS.Window.GetText(window);
            if (!String.IsNullOrEmpty(windowTitle))
            {
                windowTitlesList.Add(windowTitle);
            }
        }
        
        // Convert the list to a string array
        string[] windowTitles = windowTitlesList.ToArray();
        
        // Show the list to choose from
        string selectedWindow = BFS.Dialog.GetUserInputListViewWithFilter("Select the window to move...", windowTitles);

        // Move the window to the current monitor
        BFS.Window.MoveToMonitor(BFS.Monitor.GetMonitorIDByXY(BFS.Input.GetMousePositionX(), BFS.Input.GetMousePositionY()), BFS.Window.GetWindowByTextExact(selectedWindow));
	}
}