For this imo the unbeatable weapon of choice (Windows-only) is
AutoHotKey
It will boost your productivity. E.g. i open all my program windows by hitting CTRL+P (for PDF viewer), CTRL+F (for firefox), ALT+SHIFT+G to search a marked word in any Program with Google Scholar...and so on. Endless possibilities and huge user and scripts base.
You can also re-define any program specific shortcut to your own wishes to avoid shortcut conflicts of different software or make a self defined shortcut having the same function in different program (mostly developers try to bind shortcuts to distinct functions - e.g. SEARCH - but often shortcuts for this basic/similar functions differ)
Some examples:
~LButton & XButton2::AltTab
~LButton & XButton1::ShiftAltTab
for switching between open programs in your windows taskbar, just put it in the autohotkey.ahk script, needs 5 button mouse
#ifWinExist, Firefox
^!f::WinActivate, Firefox
return
ATLGR+F will bring Firefox to front
A nice collection of basic configurable shortcuts is
http://www.heise.de/software/download/activaid/24593
based on autohotkey and giving you shortcuts for translation, searching, music player....
It also makes it possible to scroll in every visuable window without need to activate it, very useful for multimonitor setups.