GTDWin - The Getting Things Done Window Manager
This is a very simple utility that I wrote a few years back. As a developer I have to keep several application windows open at any given time. I was trying to develop an Alt+Tab alternative because frankly I still don't understand the Windows 7 Alt+Tab behavior. So in an effort to hack the native Alt+Tab interface I discovered that simply hiding a window will remove it from the Alt+Tab window. So while developing a website, I can hide my IIS manager, explorer folders, command consoles, database managers etc and do very quick alt-tabs between my editor and the browser. That's how I got things done, one or two windows at a time.
By programmatically storing a reference to the hWnd, I can easily hide and restore the application using a system tray menu. Ideally I wanted to take it a step further and offer application groups defined by regex and wildcard matches in a config file but this is where I left off. It used to be combined with another application I wrote so if it doesn't seem to work for you let me know. I've only tested this on Windows 7, Vista and XP, still no luck in getting my free Windows 8 upgrade with new laptop purchase from Microsoft just yet...
To use, just run the application and a little system tray icon will appear. Any minimized window will be hidden from your desktop and taskbar, but the application name will appear in the system tray's 'Windows' menu. You can restore each window by click on it's menu item, or all of them using the "Restore All" option. If the application exits while other applications are hidden it will attemp to restore them. This will usually not work for application crashes. And since I'm not keeping track of unrestored hWnds, those apps are lost for good unless you can restore from a PID - sounds feasible, but I don't know how off hand.
Copyright (c) 2010 Marcus Pope - http://www.marcuspope.com/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.