Search code examples
pythonfirefoxwindows-7window

How do I take out the focus or minimize a window with Python?


I need to get focus to a specified window, and the only way I'm seeing on my head, is minimizing all windows on front of it until I get the right one...

How can I do it?

Windows 7, and no specific toolkit....

Every type of window, for example, firefox and console command


Solution

  • You'll need to enumerate through the windows and match the title of the window to get the one you want. The code below searches for a window with "firefox" in the title and sets the focus on it:

    import win32gui
    
    toplist = []
    winlist = []
    def enum_callback(hwnd, results):
        winlist.append((hwnd, win32gui.GetWindowText(hwnd)))
    
    win32gui.EnumWindows(enum_callback, toplist)
    firefox = [(hwnd, title) for hwnd, title in winlist if 'firefox' in title.lower()]
    # just grab the first window that matches
    firefox = firefox[0]
    # use the window handle to set focus
    win32gui.SetForegroundWindow(firefox[0])
    

    To minimize the window, use the following line:

    import win32con
    win32gui.ShowWindow(firefox[0], win32con.SW_MINIMIZE)