How can I send a window to the end of the Alt-Tab list in Windows 8?

12

3

Up until upgrading to Windows 8, I would use Alt+Esc to make a window go to the end of the Alt-Tab list, and "get out of the way." For example, if my Alt+Tab list looks like:

A B C D E

With A as the active window, hitting Alt+Esc will make it into:

B C D E A

With B active, and Alt+Tabing once will end with window C:

C B D E A

Ever since I got Windows 8, this isn't working any more –– hitting Alt+Esc hides the active window, but Alt+Tab will get it right back.

Why is that? Is there a way to get it back?

aviv

Posted 2013-01-21T15:56:33.247

Reputation: 431

I found many a similar questions dated to the move from XP to Windows 7, but nothing from recent years. – aviv – 2013-01-21T15:58:09.997

2For many reasons, I find that "upgrading to Windows 8" is really downgrading the user experience. Your example is not the only one. – harrymc – 2013-03-05T19:54:17.863

Answers

3

From Wikipedia's Alt-Tab :

When the Alt+Tab task switcher window is not active, Alt+Esc places the active window at the bottom of the Z-order. In Windows 8 the behavior has changed, the window will be moved level down the Z-order instead of going to the end.

If you want Windows 8's Alt-Esc to work as it used to work in Windows 7, the answer is negative - there is no information whether this is possible. Maybe in the future something will come up, but not now.

If you don't need a touch screen and you want your computer to behave like it did in Windows 7, the only solution is to go back to Windows 7.

harrymc

Posted 2013-01-21T15:56:33.247

Reputation: 306 093

2

It looks like the Win32 API function SetWindowPos may be able to do this. I'll see if I can do something with that when I get a bit of time (maybe tomorrow). (cc @aviv)

– Bob – 2013-03-08T07:36:19.163

The Windows API for doing that certainly still exists, the problem is that the Alt+Tab switcher does not use it. Writing your own extension that will hook Alt+Tab and do it your way will surely work. Your best tool may be Autohotkey, using the DllCall command.

– harrymc – 2013-03-08T08:18:51.580

Are you saying the task switcher keeps its own independent list of windows? – Bob – 2013-03-08T08:32:23.960

I am saying that it has its own way of calling SetWindowPos that evidently is not what you want. Remark: In Autohotkey it is much easier to use the WinSet command, rather than DllCall.

– harrymc – 2013-03-08T08:46:30.083

I was talking about intercepting Alt + Esc to set the window as bottommost. This is, as far as I know, a systemwide list. My testing so far (C#) has somehow led to the window being placed as the first item in the task switcher... (if WinSet works, perhaps you can amend your answer? I will continue with what I am currently trying, for now.) – Bob – 2013-03-08T08:50:53.517

4A bit more testing, and it seems that SetWindowPos itself has changed as of Windows 8 - I get the expected behaviour on Windows 7. Good job, Microsoft, you broke it. – Bob – 2013-03-08T08:58:29.187

Implementing that behavior for Alt-Esc is a one-liner with Autohotkey. – harrymc – 2013-03-08T09:05:26.860

Unfortunately, while it is a one-liner, it does not work as expected. As I said in my previous comment, SetWindowPos itself appears to have changed (from your answer, I assumed it was just the Alt + Esc hotkey, not the underlying API - I was mistaken). I just tried with AHK/WinSet, and the results are exactly the same as manually calling the API function. I consider this broken, as HWND_BOTTOM no longer places the window at the bottom... I'm going to give up for now. – Bob – 2013-03-08T09:24:25.427

You might raise this up in the Autohotkey forums. Some developer might find a solution. – harrymc – 2013-03-08T10:11:42.927

1

This app does the job and is a little configurable:

vistaswitcher

I would like to speak with the Microsoft genius who decided to eliminate the ALT+ESC functionality.

Matteo Conta

Posted 2013-01-21T15:56:33.247

Reputation: 111