PRB: Cannot Disable CTRL+ESC and ALT+TAB Under Windows NT

ID: Q125614

The information in this article applies to:

SYMPTOMS

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.

CAUSE

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.

RESOLUTION

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.

STATUS

This behavior is by design.

REFERENCES

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