Windows 7 feature or freeware to keep a window always beneath others

A long time ago, Windows had a PowerToy (later in TweakUI) called X-Mouse that, amongst other things, supported old-style X "focus follows mouse", where "focus" and "foreground" were not the same thing. I don't believe it's maintained any more (last sighting was for WinXP).

Though I haven't used it extensively, the free Windows scripting tool AutoIT can do what you want with a short script:

#include <WinAPI.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>
#include <SendMessage.au3>

Local $hWnd,$flags,$regexp

Func MyExit() 
    MsgBox(0,"Drop Window","Quitting!",2) 
    Exit 0
EndFunc

$flags = BitOr($SWP_NOMOVE,$SWP_NOSIZE,$SWP_NOACTIVATE,$SWP_ASYNCWINDOWPOS,$SWP_NOSENDCHANGING) 

;; hot key to call exit: ALT + F11
HotKeySet("!{F11}","MyExit")

;; application window title
$regexp=".*Notepad$"

;; 10 second time out on first startup, 
$hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]", "", 10)
;; or wait forever
;$hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]")

If ($hWnd) Then
    ;; uncomment next line to maximize window first
    ;_SendMessage($hWnd,$WM_SYSCOMMAND,$SC_MAXIMIZE)

    _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags);

    While 1
        If WinWaitActive($hWnd,"",10) Then
            _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $flags);
        EndIf
        ;; check for new window
        $hWnd = WinWait("[REGEXPTITLE:" & $regexp & "]","",1) 

        ;; uncomment next 3 lines to quit if no window
        ;if (NOT $hWnd) Then
        ;    MyExit()
        ;EndIf

        Sleep(250)
    Wend
Else
    MsgBox(0,"Drop Window","No window title matching /" & $regexp & "/") 
EndIf

"topmost" is a persistent window property that the WM maintains, there is no equivalent "bottom most", so we have to fudge it a bit.

The While loop waits for the application to get the foreground, then drops it under again while keeping keyboard focus. Modal popups may sometimes interfere with this, but it should be quite usable.The script will continue to run in the background after the watched program terminates. Alt+F11 to exit it at any time.

Change $regexp to match "mIRC" or whatever. The above will only reliably handle one window at a time. Read the AutoIT docs for WinWait() to see how to match windows other than by window title.

Save to dropwindow.au3 and run it with "autoit3 dropwindow.au3".

http://www.autoitscript.com/site/autoit/downloads/


If you have a PC equiped with ATI Radeon Graphic Card you may use HydraGrid with the latest ATI drivers and utilities, if not Winsplit Revolution.