morgan1991 это как в случаи с диалогом выключения в ХР.
Затенение можно сделать используя регионы, в частности
здесь рассказывается про эту технику.
Блокировать не активные окна можно с помощью
LockSetForegroundWindow с user32.dll.
Вот реализация с использования .NET FrameWork
A modal dialog that fades the background to gray-scale imitating the XP shutdown screen