Processing Ajax...

Close Dialog


Close Dialog

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.

Search for Window by File Name or Title if File Not Found

This script searches for a window by file name with a fall back to window text.
Minimum Version
Created By
Gilad Barnea
Date Created
May 25, 2018
Date Last Modified
May 25, 2018

Scripted Function (Macro) Code

using System;
using System.Drawing;

public static class DisplayFusionFunction {
    // Based on "Search for Window by Title" by Keith Lammers
    public static void Run (IntPtr windowHandle) {

        // Will focus the window with a matching file rather than window title. If no file was found, will focus based on title.
        // For example, this will focus the actual spotify window if both spotify, and a chrome page about spotify, are running.
        // Set to false to reverse priority
        bool prioritize_file_over_title = false;

        // Set some value to if you want a common app to be available just by pressing enter.
        // Personally I set it to "chrome".
        string default_app = "";


        // Prompt for the text to search for
        string searchText = BFS.Dialog.GetUserInput ("Enter part of the window title:", default_app);

        // Find the window with the matching file name
        IntPtr window_by_file = BFS.Application.GetMainWindowByFile ("*" + searchText + "*");

        // Find by window title
        IntPtr window_by_title = BFS.Window.GetWindowByText ("*" + searchText + "*");

        // If file name is prioritzed over window title (i.e. "spotify" over "beatles")
        if (prioritize_file_over_title) {
            FocusIfFound (window_by_file, window_by_title);
            // If window title was prioritized over file name ("beatles" over "spotify")
        } else {
            FocusIfFound (window_by_title, window_by_file);

    // Focus first_option if found. Else, focus second_option
    public static void FocusIfFound (IntPtr first_option, IntPtr second_option) {
        if (first_option.ToString () != "0") {
            BFS.Window.Focus (first_option);
        } else {
            BFS.Window.Focus (second_option);