ID: Q125614
The information in this article applies to:
CTRL+ESC and ALT+TAB task switching cannot be disabled by an application running under Windows NT.
Capturing WM_SYSCOMMAND messages and not sending them on for processing by DefWindowProc() allowed task switching to be disabled in Windows version 3.1, but it doesn't work under Windows NT.
A primary reason for this change is to avoid dependence on an application for processing of these key combinations. This way a hung application can be switched away from by using either CTRL+ESC or ALT+TAB.
You can disable CTRL+ESC on a system-wide basis by replacing the NT Task Manager. This is not recommended.
You can disable ALT+TAB and ALT+ESC while a particular application is running if that application registers hotkeys for those combinations with Register HotKey().
Another mechanism to disable these key combinations, as well as the newer Windows key, is to use a low level keyboard hook (WH_KEYBOARD_LL). This hook is available on Windows NT 4.0 Service Pack 3 and later. The low level keyboard hook can also detect CTRL+ALT+DEL, but it cannot disable it.
This behavior is by design.
The first reference below describes the steps that must be taken to replace TASKMAN.EXE. The two additional references provide more information on the Windows NT Task Manager and its relationship to the Program Manager.
ARTICLE-ID: Q89373
TITLE : Replacing the Windows NT Task Manager
ARTICLE-ID: Q100328
TITLE : Replacing the Shell (Program Manager)
ARTICLE-ID: Q101659
TITLE : How Windows NT, 16-Bit Windows 3.1 Task Managers Differ
Additional query words:
Keywords : kbHook kbInput kbNTOS kbGrpUser kbWinOS95 kbWinOS98
Issue type : kbprb
Last Reviewed: December 26, 1998