using System; using System.Drawing; using System.Runtime.InteropServices; // 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) { //run the script until the user exits while(true) { //get the currently focused window IntPtr focusedWindow = BFS.Window.GetFocusedWindow(); if(focusedWindow != IntPtr.Zero || BFS.Application.GetMainFileByWindow(focusedWindow).Contains("explorer.exe") || BFS.Application.GetMainFileByWindow(focusedWindow).Contains("DisplayFusion.exe")) BFS.Window.SetWindowHighlight(focusedWindow, Color.Red); //run through each visible window and turn off the highlighting foreach(IntPtr window in BFS.Window.GetVisibleWindowHandles()) { //if we failed to get the window handle, continue if(window == IntPtr.Zero) continue; //don't remove the highlighting if this is the focused window if(window == focusedWindow) continue; BFS.Window.RemoveWindowHighlight(window); } //make the program sleep for one second BFS.General.Sleep(1000); } } }