Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Open and Move 4 File Explorer Windows on Monitor 2

Description
This script will open 4 File Explorer windows, and move them to the corners of monitor 2.
Language
C#.net
Minimum Version
Created By
Keith Lammers (BFS)
Contributors
-
Date Created
Aug 1, 2018
Date Last Modified
Aug 23, 2018

Scripted Function (Macro) Code

using System;
using System.Drawing;

public static class DisplayFusionFunction
{
	public static void Run(IntPtr windowHandle)
	{
        // Set the monitor ID you want the File Explorer windows to open on
        uint targetMonitorID = 2;
        
        // If you want to open the File Explorer windows to specific folders, put the folder paths 
        // inside the quotes below otherwise just leave them blank
        string[] folderPaths = { @"",
            @"",
            @"",
            @"" };
        
        // If the windows open but don't move correctly, try adjusting this delay
        uint launchDelay = 1000;

        // Window 1
        LaunchAndMoveFileExplorer(targetMonitorID, launchDelay, folderPaths[0]);
        BFS.DisplayFusion.RunFunction("Move Window to Top-Left Corner and Size 50%");

        // Window 2
        LaunchAndMoveFileExplorer(targetMonitorID, launchDelay, folderPaths[1]);
        BFS.DisplayFusion.RunFunction("Move Window to Top-Right Corner and Size 50%");

        // Window 3
        LaunchAndMoveFileExplorer(targetMonitorID, launchDelay, folderPaths[2]);
        BFS.DisplayFusion.RunFunction("Move Window to Bottom-Left Corner and Size 50%");
        
        // Window 4
        LaunchAndMoveFileExplorer(targetMonitorID, launchDelay, folderPaths[3]);
        BFS.DisplayFusion.RunFunction("Move Window to Bottom-Right Corner and Size 50%");
	}
	
	private static void LaunchAndMoveFileExplorer(uint targetMonitorID, uint launchDelay, string folderPath)
	{
        BFS.Application.Start("C:\\Windows\\explorer.exe", folderPath);
        BFS.General.ThreadWait(launchDelay);
        BFS.Window.MoveToMonitor(targetMonitorID, BFS.Window.GetFocusedWindow());
        BFS.General.ThreadWait(100);
	}
}