Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Highlight Currently Focused Window

Description
This function highlights the currently focused window in red.
Language
C#.net
Minimum Version
Created By
Thomas Malloch (BFS)
Contributors
Keith Lammers (BFS)
Date Created
Mar 17, 2015
Date Last Modified
Feb 13, 2018

Scripted Function (Macro) Code

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);
		}
	}
}