Для PowerPoint см. эту статью MS KB здесь: http://support.microsoft.com/kb/913045
Screen Saver: Windows API: FindWindow("WindowsScreenSaverClass"). (Более подробную информацию см. в этой веб-статье: http://bobmoore.mvps.org/Win32/w32tip22.htm - там есть более подробный способ сделать это, но я думаю, что FindWindow будет работать нормально для вас)
Для определения, используется ли полноэкранная игра: IDirect3DDevice9::TestCooperativeLevel http://msdn.microsoft.com/en-us/library/bb174472(VS.85).aspx
В остальном, я думаю, вы на правильном пути с GetForegroundWindow, GetWindowRect, и другими апи позиционирования окна.
Все усложняется, если у вас более одного монитора - так что не забывайте об этом сценарии применительно к вашему приложению.