Q. Как в Win9x и WinNT заблокировать клавиши WIN, Alt+Tab, Ctrl+Esc etc.?
A1 Например так – в конструкторе главного окна приложения зарегистрировать HotKey:
m_HK = GlobalAddAtom("alttab"); // DWORD m_HK;
RegisterHotKey(GetSafeHwnd, m_HK, MOD_ALT, VK_TAB);
а в деструкторе не забыть его разрегистрировать:
UnregisterHotKey(GetSafeHwnd, m_HK);
так как никакого обработчика для этого HotKey мы не делаем, то соответственно и происходить по нажатию Alt-Tab ничего не будет.
A2 По материалам http://msdn.microsoft.com/msdnmag/issues/0700/Win32/Win320700.asp
В WinNT (начиная с Windows NTR 4.0 Service Pack 3) существует возможность использовать "low-level" hook на клавиатуру WH_ KEYBOARD_LL для отключения комбинаций Ctrl+Esc, Alt+Tab, Alt+Esc.
Для данной данной функии установлен лимит времени: Система возвращается в нормальное состояние через промежуток времени определяемый параметром LowLevelHooksTimeout в HKEY_CURRENT_USER\Control Panel\Desktop время указывается в милисекундах.