Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Some programs e.g. GridMove and XNeat allow users to keep a given window above other windows using an "Always On Top" command. Is there a way to do the reverse i.e. "Always At The Bottom" with any Windows 7 commands or freeware for it, except by making all other windows "Always On Top"?

It is sometimes useful to keep chat programs (into which typing occurs) beneath all windows with only the latest message and text entry field visible through the windows' gaps without the rest of chat program's UI cluttering up the space.

share|improve this question
1  
No, there is no built in feature within the Win32 Library that allows for a programmer to force an application to the background. It is more logically telling other applications to go to the foreground. –  Ramhound Sep 24 '12 at 12:38
    
As an alternative you can make that window see through my altering its transparency.(many tools can do this). Or you can use AutoHotkey to minimize it to tray.(If its doesn't kills the purpose:-)) –  Lamb Sep 24 '12 at 13:07
1  
Even though the Win32 does not natively support this, you can send a particular window to the background at any given moment. I don't know if it keeps focus then, though. Perhaps you could look for a way to automatically send the window to the back as soon as it loses focus instead. Another alternative is tiling the windows so you should not worry about z-index... –  MDeSchaepmeester Sep 24 '12 at 15:00

2 Answers 2

up vote 1 down vote accepted

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/

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.