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)
{
//a list of excel files to open
string[] excelFiles =
{
"excelFile1.xlsx",
"excelFile2.xlsx",
"excelFile3.xlsx"
};
//get the monitors connected to the system
uint[] monitors = BFS.Monitor.GetMonitorIDs();
//if we failed to get the monitors, exit the function
if (monitors.Length == 0)
return;
//loop through the files
for (int i = 0; i < excelFiles.Length; i++)
{
//get the excel file
string excelFile = excelFiles[i];
//get the monitor
uint monitor = monitors[i % monitors.Length];
//start excel with the specified file
uint appId = BFS.Application.Start("C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE", excelFile);
//get the main window of excel
IntPtr excelWindow = BFS.Application.GetMainWindowByAppID(appId);
//if we failed to get the excel window, continue to open the files and ignore this intance
if(excelWindow == IntPtr.Zero)
continue;
//move the excel window to the specified monitor
BFS.Window.MoveToMonitor(monitor, excelWindow);
}
}
}