Minimizing all windows that are currently open is an extremely easy task. And undoing the minimize all operation (restoring all windows to their previous state) is just as easy. Just use the corresponding code snippets below to do it.
// Minimize All Windows PostMessage(FindWindow("Shell_TrayWnd", NULL), WM_COMMAND, MAKELONG(415, 0), 0); // Undo Minimize All Windows PostMessage(FindWindow("Shell_TrayWnd", NULL), WM_COMMAND, MAKELONG(416, 0), 0);
Since the operating system has the minimize all feature built in, we use that instead of enumerating all of the currently opened windows and sending a minimize message to each one. You'll note that the first parameter to the
PostMessage() method above is a call to the
FindWindow() method. We are essentially obtaining a handle to the window indicated by the "Shell_TrayWnd" class name, which happens to be the Windows task bar. We send a
WM_COMMAND message to that window, and pass in a value of 415 for the
wParam value. I'm not 100% sure where the 415 and 416 values come from, as I found these in an obscure news posting. My guess is that these are the unique ID numbers for the task bar's minimize all and restore all commands.